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中,我有一个打印(TEMPLATES)语句,这一切似乎都在寻找正确的区域,但没有找到base.html。在pastebin上跟踪:https://pastebin.com/raw/MQDAip64
方面问题:如何从其他应用继承模板,是否像{% url 'fleetdb:detail' }
中的网址标记一样?
答案 0 :(得分:6)
尝试,
{% extends 'fleetdb/base.html' %}
Django默认在templates
子目录下查找模板。您已将自己保存在fleetdb
目录下的templates
文件夹下。
建议:如果要为多个应用程序使用通用模板,请将其放在根项目文件夹中的templates
目录下。
+project_folder
+app1
+templates
-----
+app2
+templates
-----
+templates
-your-common-templates
-here-
然后,您可以从项目中的任何应用访问它们。