django中的模块化模板

时间:2013-08-14 11:17:24

标签: python html django templates

我开始使用Django,我正在尝试制作模块化模板,但我不知道如何。现在,我有以下文件:

1- base.html(提供所有网站的基本布局):

{% load staticfiles %}
<!DOCTYPE html>
<html>
<head>
<title>My site</title>
<link rel="stylesheet" type="text/css" href="{% static 'css/style.css' %}" />
<link rel="stylesheet" type="text/css" href="{% static 'css/bootsrap.min.css' %}" />
</head>

<body>
<h1>Test title</h1>
{% block content %}
{% endblock %}
</body>
</html>

2- index.html(主要数据库读取)

{% extends 'base.html' %}
{% block content %}
{% if latest_smartphones_list %}
<ul>
{% for s in latest_smartphones_list %}
    <li><a href="#">{{ s.brand }} {{ s.name }}</a></li>
{% endfor %}
</ul>
{% else %}
<p>No smarphones available.</p>
{% endif %}
{% endblock %}

最后,我想添加第三个文件,名为menu.html,其中包含网站菜单。我想在base.html文件中添加它。我一直在考虑以下列方式做这件事,但我不行:

{% load 'menu.html' %}

非常感谢你的帮助!

2 个答案:

答案 0 :(得分:4)

您必须使用{% load 'menu.html' %}

,而不是使用{% include 'menu.html' %}

文档:

答案 1 :(得分:0)

正确的方法是使用include templatetag

{% include 'menu.html' %}

包含模板并使用当前上下文呈现它。

注意:遇到麻烦时,django docs是最好的去处!始终牢记这一点