Django模板不存在错误,虽然它显示'文件存在'

时间:2014-10-28 09:01:44

标签: python django django-templates

我无法在Django 1.7中呈现任何html页面。我的'index.html'位于“project/seatalloc/templates/index.html”中,project/seatalloc/views.py中的view.py看起来像:

 def index(request):
       return render(request, 'index.html', dirs=('templates',)) 

project / project / settings.py设置了模板目录:

TEMPLATE_DIRS = (
    '/Users/Palak/Desktop/academics/sem3/cs251/lab11/project/seatalloc/templates',

)

urls.py:

urlpatterns = patterns('',
    url(r'^seatalloc/', include('seatalloc.urls')),
    url(r'^admin/', include(admin.site.urls)),
)

Template loader

我已经尝试严格遵循文档,但无法弄清楚Django是否检测到文件,为什么我在/ seatalloc /错误中获得TemplateDoesNotExist。我是Django的新手,请有人帮忙。

3 个答案:

答案 0 :(得分:30)

如果 - 在您的情况下 - 您收到TemplateDoesNotExist错误并且调试页面在相关模板旁边显示“文件存在”这通常(总是?)表示此模板引用另一个无法找到的模板。

在您的情况下,index.html包含一个语句({{1}}),引用Django找不到的另一个模板。不幸的是,从Django 1.8.3开始,调试页面总是命名基本模板,而不是Django找不到的模板。

答案 1 :(得分:2)

试试这个,

import os
BASE_DIR = os.path.dirname(os.path.dirname(__file__))
TEMPLATE_DIRS = (
     os.path.join(BASE_DIR, 'templates/'),
)

答案 2 :(得分:-1)

首先,不要在settings.py中的模板目录中使用静态路径(固定路径),使用:

BASE_DIR = os.path.dirname(os.path.dirname(__file__))

TEMPLATE_DIRS = (
      BASE_DIR +'/Templates',


  )

模板目录应该在项目目录中,即manage.py文件存在。

在view.py中使用render_to_response而不是render

return  render_to_response("index.html")