【问题标题】:Django TemplateDoesNotExist at /x/ base.html/x/base.html 处的 Django TemplateDoesNotExist
【发布时间】:2017-12-27 08:57:45
【问题描述】:

django 1.11.3

我有一个模板不存在错误,据我所知,我的模板目录设置正确。 fleetdb 是我项目中的一个应用程序,具有以下目录结构:

+ fleetdb
     +templates
         +fleetdb
              -index.html
              -base.html
               (other html pages)

直到我在索引中尝试 {% extends 'base.html' %} 之前一切正常:

{% extends 'base.html' %}

{% load static %}

<link rel="stylesheet" type="text/css" href="{% static 'fleetdb/lists.css' %}" />


{% if vehicles_list %}
<ul>
    {% for vehicle in vehicles_list %}
    <li><a href="{% url 'fleetdb:detail' vehicle.id %}">{{ vehicle.unit }} {{ vehicle.make }} {{ vehicle.vmodel }} {{vehicle.color}}</a></li>
</ul>
    {% endfor %}
{% else %}
<p>No Vehicles are available.</p>
{% endif %}

在我的 settings.py 中,我有一个 print(TEMPLATES) 语句,这一切似乎都在寻找正确的区域,但没有找到 base.html。在 pastebin 跟踪:https://pastebin.com/raw/MQDAip64

附带问题:我如何从另一个应用程序继承模板,会不会像 {% url 'fleetdb:detail' } 的 url 标签一样?

【问题讨论】:

    标签: django django-templates


    【解决方案1】:

    试试,

    {% extends 'fleetdb/base.html' %}
    

    Django 默认在templates 子目录下查找模板。您已将您的保存在templates 目录下的fleetdb 文件夹下。

    建议:如果您想为多个应用使用通用模板,请将其放在根项目文件夹中的templates 目录下。

    +project_folder
        +app1
            +templates
            -----
        +app2
            +templates
            -----
        +templates
            -your-common-templates
            -here-
    

    然后您可以从项目中的任何应用访问它们。

    【讨论】:

    • 欢迎,伙计。随时!
    猜你喜欢
    • 2019-07-12
    • 1970-01-01
    • 1970-01-01
    • 2018-08-11
    • 2011-06-13
    • 2014-10-17
    • 1970-01-01
    • 1970-01-01
    • 2018-09-29
    相关资源
    最近更新 更多