Django找不到我的模板

时间:2018-03-28 17:48:52

标签: django django-views

我已经尝试了很多方法来制作" Django找到我的模板,但我无法弄清楚出了什么问题。 Django如何找到模板?它总是引发TemplateDoesNotExist异常。

它正在设法获得" base.html"模板位于"模板"文件夹,但它无法获得" list.html"和" detail.html"在" post"内的模板文件夹,也在"模板中#34;文件夹中。

enter image description here

以下是观点:

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函数的第二个参数中? (这也是我试图让事情发挥作用的另一种方式)。

2 个答案:

答案 0 :(得分:1)

您的list.htmlpost.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'],