我已经尝试了很多方法来制作" Django找到我的模板,但我无法弄清楚出了什么问题。 Django如何找到模板?它总是引发TemplateDoesNotExist异常。
它正在设法获得" base.html"模板位于"模板"文件夹,但它无法获得" list.html"和" detail.html"在" post"内的模板文件夹,也在"模板中#34;文件夹中。
以下是观点:
def post_list(request):
posts = Post.published.all(); # '.published' is a manager.
# try:
return render(request, "list.html", {"posts": posts});
# except:
# return render(request, "base.html", {"posts": posts});
def post_detail(request, year, month, day, post):
post = get_object_or_404(Post, slug=post,
status="published",
publish_year=year,
publish_month=month,
publish_day=day);
return render(request, "detail.html", {"post": post});
如果我放" templates / post / list.html"为什么它不起作用?在render函数的第二个参数中? (这也是我试图让事情发挥作用的另一种方式)。
答案 0 :(得分:1)
您的list.html
和post.html
模板位于post
目录中,因此您必须在指定模板路径时包含该模板。例如:
return render(request, "post/list.html", {"posts": posts});
Django会自动在templates
目录中搜索已安装应用中的每个应用,包括blog/templates
,因此在指定模板路径时不应包含templates
。
答案 1 :(得分:0)
您还可以修改基本settings.py文件以重定向模板部分。
TEMPLATES = [
'DIRS': [os.path.join(BASE_DIR, '/templates'],