Django模板不存在

时间:2015-01-16 21:16:37

标签: django django-templates

我知道这已经涵盖了,但没有一个解决方案对我有用。我有一个基本的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),我也在根项目文件夹中将它移动了,但这两个都没有用。任何见解都会有所帮助。

2 个答案:

答案 0 :(得分:3)

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

项目/应用/ views.py
项目/应用/模板/ index.html中

get_template('index.html')

use subdirectories更好:

项目/应用/ views.py
项目/应用程序/模板/应用/ 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')),
)

答案 1 :(得分:0)

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

  

模板/ FILE_NAME /

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

  

templates / file_name /