Django 模板不存在

Posted

技术标签:

【中文标题】Django 模板不存在【英文标题】:Django Template Does Not Exist 【发布时间】:2015-03-15 14:01:36 【问题描述】:

我知道这已经涵盖了,但没有一个解决方案对我有用。我有一个基本的 django 项目,它找不到模板。这是我的views.py:

now = datetime.datetime.now()
t = get_template('index.html')
html = t.render(Context('current_date' : now))
return HttpResponse(html)

这是我在 settings.py 中的 TEMPLATE_DIRS。该项目在 INSTALLED_APPS 下指定

TEMPLATE_DIRS = (
    '/Users/Howie/Desktop/djangoCode/mysite/Movies/templates/',
)

这是我每次遇到的错误

Template-loader postmortem:
Django tried loading these templates, in this order:
Using loader django.template.loaders.filesystem.Loader:
C:\Users\Howie\Desktop\djangoCode\mysite..\templates\index.html (File does not exist)
Using loader django.template.loaders.app_directories.Loader:
C:\Python34\lib\site-packages\django-1.7.2-py3.4.egg\django\contrib\admin\templates\index.html (File does not exist)
C:\Python34\lib\site-packages\django-1.7.2-py3.4.egg\django\contrib\auth\templates\index.html (File does not exist)
C:\Users\Howie\Desktop\djangoCode\mysite\Movies\templates\index.html (File does not exist)

我不明白为什么 django 找不到我的 index.html 文件。我已经尝试将模板文件夹移动到应用程序本身(名为 Movies)中,并且我也将它放在了根项目文件夹中,但是这两个都不起作用。任何见解都会有所帮助。

【问题讨论】:

您要使用的 index.html 文件的实际路径是什么? 您应该将 TEMPLATE_DIRS 更改为 '/Users/Howie/Desktop/djangoCode/mysite/templates/',然后将模板目录放在根项目文件夹 (mysite) 中。 @HåkenLid 路径是 TEMPLATE_DIRS 中的路径(/Users/Howie/Desktop/djangoCode/mysite/Movies/templates/) index.html 文件在模板目录中。 @DanielRobinson 试过了,还是一样的错误 【参考方案1】:

app_directories.Loader 默认启用。这意味着您可以将模板放在app/templates 目录中并完成。不需要 TEMPLATE_DIRS 和/或 TEMPLATE_LOADERS 设置。开箱即用的 Django:

项目/应用程序/views.py 项目/app/templates/index.html

get_template('index.html')

最好use subdirectories:

项目/应用程序/views.py 项目/app/templates/app/index.html

get_template('app/index.html')

这是为了避免来自其他应用的 index.html 优先。

如果您真的想在项目的根目录中添加一个模板文件夹,请不要使用硬编码路径。做类似this:

from os.path import abspath, dirname, join, normpath
from sys import path

SITE_ROOT = dirname(dirname(abspath(__file__)))
TEMPLATE_DIRS = (
    normpath(join(SITE_ROOT, 'templates')),
)

【讨论】:

【参考方案2】:

我有同样的问题只是发现这是一个拼写错误,我写了模板

模板/文件名/

作为不是 Django 方式的模板。 “s”是必要的

模板/文件名/

【讨论】:

以上是关于Django 模板不存在的主要内容,如果未能解决你的问题,请参考以下文章

Django 模板不存在@

Django 模板不存在

模板不存在。加载静态文件和模板 Django 项目结构

模板不存在“django 2.0”

模板不存在。 Django寻找错误的路径

Django CMS - 创建第一页时模板不存在错误