我正在创建一个名为 "crepes_bretonnes" 的项目。在这个项目中,我有一个应用程序博客。我创建了一个名为 date.html 的模板。以下是我的文件夹结构 :
crepes_bretonnes/
blog/
__init__.py
admin.py
migrations/
__init__.py
models.py
templates/
blog/
addition.html
date.html
tests.py
views.py
crepes_bretonnes/
__init__.py
settings.py
urls.py
wsgi.py
templates/
db.sqlite3
manage.py
当我尝试查看页面时,出现了消息模板DoesNotExist。我在网上看了很多相关的内容,但没有成功解决我的问题。实际上,我不明白为什么Django没有在我的应用程序博客的模板文件夹中搜索,即使我已经在setting.py中写入了“blog”在INSTALLED_APP中。显然,我已经在setting.py中添加了TEMPLATE_DIRS = (os.path.join(BASE_DIR,'templates'),)。我也尝试过更改字典TEMPLATES。然而,如果我理解得正确,这与这里的Django应该能够在没有这个的情况下找到我的模板没有关联。
我没有任何解决方案。
谢谢你的帮助。
PS:如果我将date.html放在通用模板文件夹中并排列一些行,它会起作用。然而,这不是一个解决方案,我想要遵守良好的结构。
更新:
感谢您的答复。是的,我的设置确实说了INSTALLED_APPS,并且APP_DIRS已经为True。
以下是我在setting.py中的TEMPLATES:
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [os.path.join(BASE_DIR, "templates")],
'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',
],
},
},
]
更新: 调试信息显示 Django 在 django.template.loaders.app_directories.Loader 中搜索:/Users/benjamin/anaconda/lib/python2.7/site-packages/django/contrib/admin/templates/blog/date.html。然而,我并没有在这些文件夹中写任何东西... 我是在 "文档" 文件夹中工作。为什么 Django 在那里搜索而不是在 "文档" 中搜索呢?