Python Django:PosixPath对象不可编辑
在Django版本3.x之前,可以使用Python Django:PosixPath对象不可编辑,python,django,django-settings,Python,Django,Django Settings,在Django版本3.x之前,可以使用os.path定义模板、静态文件夹和媒体文件夹。进入settings.py我有以下配置: BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) . . . TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [os
os.path
定义模板、静态文件夹和媒体文件夹。进入settings.py
我有以下配置:
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
.
.
.
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [os.path.join(BASE_DIR, 'templates')],
.
.
.
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(os.path.dirname(BASE_DIR), 'static-folder')
MEDIA_ROOT = os.path.join(os.path.dirname(BASE_DIR), 'media-folder')
MEDIA_URL = '/media/'
STATICFILES_DIRS = [os.path.join(BASE_DIR, 'static')]
现在设置已更改,我需要使用Path
:
from pathlib import Path
# Build paths inside the project like this: BASE_DIR / 'subdir'.
BASE_DIR = Path(__file__).resolve().parent.parent
我正在沿着这条新路走,但我觉得有些事情对我来说并不清楚。我的新设置.py
配置是:
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [
BASE_DIR / 'templates',
],
.
.
.
STATIC_URL = '/static/'
STATIC_ROOT = BASE_DIR / 'static-folder'
MEDIA_URL = '/media/'
MEDIA_ROOT = BASE_DIR / 'media-folder'
STATICFILES_DIRS = BASE_DIR / 'static'
但通过该配置,我看到了以下错误:
线程django主线程中出现异常:回溯(最近的调用
最后):文件“/usr/lib/python3.8/threading.py”,第932行,在
_自举法
self.run()文件“/usr/lib/python3.8/threading.py”,第870行,运行中
self.\u target(*self.\u args,**self.\u kwargs)文件“/home/maxdragonhart/DEV_FOLDER/MIO/Miosito/WebApp/backend/.env/lib/python3.8/site packages/django/utils/autoreload.py”,
第53行,在包装器中
fn(*args,**kwargs)文件“/home/maxdragonhart/DEV_FOLDER/MIO/Miosito/WebApp/backend/.env/lib/python3.8/site packages/django/core/management/commands/runserver.py”,
第118行,在内部运行
self.check(display_num_errors=True)文件“/home/maxdragonhart/DEV_FOLDER/MIO/Miosito/WebApp/backend/.env/lib/python3.8/site packages/django/core/management/base.py”,
第392行,检查中
所有问题=检查。运行检查(文件“/home/maxdragonheart/DEV\u FOLDER/MIO/Miosito/WebApp/backend/.env/lib/python3.8/site packages/django/core/checks/registry.py”,
第70行,运行检查
新建错误=检查(应用程序配置=应用程序配置,数据库=数据库)文件
“/home/maxdragonheart/DEV_FOLDER/MIO/Miosito/WebApp/backend/.env/lib/python3.8/site packages/django/contrib/staticfiles/checks.py”,
第7行,签入查找程序
对于get_finders():File“/home/maxdragonhart/DEV_FOLDER/MIO/Miosito/WebApp/backend/.env/lib/python3.8/site packages/django/contrib/staticfiles/finders.py”中的查找程序,
第282行,输入查找程序
生成get_finder(finder_path)文件“/home/maxdragonheart/DEV_FOLDER/MIO/Miosito/WebApp/backend/.env/lib/python3.8/site packages/django/contrib/staticfiles/finders.py”,
第295行,在get_finder中
return Finder()文件“/home/maxdragonheart/DEV_FOLDER/MIO/Miosito/WebApp/backend/.env/lib/python3.8/site packages/django/contrib/staticfiles/finders.py”,
第57行,在init
对于settings.STATICFILES\u DIRS中的根目录:TypeError:“PosixPath”对象不可编辑
试着用这个-
STATICFILES\u DIRS=[BASE\u DIR/'static',]
@Dario这是一个怎样的评论?这是一个诚实的回答(实际上解决了问题…)。如果你认为这不是一个好的答案,只需否决投票,但不建议删除