我正在创建一个名为“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
当我尝试查看该页面时,我收到一条消息 templateDoesNotExist。我已经在网上阅读了很多关于它的内容,但我没有成功解决我的问题。其实我不明白为什么我在setting.py的INSTALLED_APP
中写了“blog”,但Django却没有在我的app blog的模板文件夹中搜索。显然,我已将 TEMPLATE_DIRS = (os.path.join(BASE_DIR, 'templates'),)
放入 setting.py
中。我还尝试更改字典 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 在此处搜索而不是在 Documents 中搜索?
最佳答案
我通过在"template"之后添加正斜杠“/”解决了这个问题:
'DIRS': [BASE_DIR / 'templates/'],
关于python - Django - 模板不存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37635931/