作为对Bernhard Vallant或Anshuman答案的轻微变体,这里有一个替代代码片段可放置在settings.py中。
import os
import sys
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
APPS_DIR = os.path.join(BASE_DIR, '<your_project_dir_name>/apps/')
sys.path.insert(0, APPS_DIR)
以这种方式进行操作的额外好处是,您的模板目录更加干净整洁,因为它们将如下所示。如果没有
APPS_DIR
变量,则在
TEMPLATES
列表的
DIRS
列表中会有大量
<your_project_dir_name>/apps/
的重复。
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [
os.path.join(APPS_DIR, '<app_name>/templates/<app_name>'),
os.path.join(APPS_DIR, '<app_name>/templates/<app_name>'),
...
],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
]
您可以按照正常方式列出
INSTALLED_APPS
列表中的应用程序,可使用在
apps.py
中给出的简短名称或使用长格式语法
appname.apps.AppnameConfig
,将
appname
替换为您的应用程序名称。
ModuleNotFoundError: No module named 'pages'
错误。pages
是其中一个应用程序的名称。 - R891