我无法在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)),
)
我已经尝试严格遵循文档,但无法弄清楚Django是否检测到文件,为什么我在/ seatalloc /错误中获得TemplateDoesNotExist。我是Django的新手,请有人帮忙。
答案 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")