我在尝试制作一个通用模板然后扩展到子模板时遇到了问题。
Post.html
{% extends "blog\blog_base.html" %}
{% block title %} The Blog {% endblock %}
{% block menu %}
{% endblock %}
<h1>The Blogs Index Page</h1>
{% block content %}
<h2> Posts </h2>
{% for post in latest_post_list %}
<h3> {{ post.title }} </h3>
<p> {{ post.body|linebreaks }} </p>
{% endfor %}
{% endblock %}
blog_base.html
<body>
{% block menu %}
{% for menu in menu %}
{{ menu.page_name }}
{% endfor %}
{% endblock %}
<div class = "content">
{% block content %} <p> Place Holder </p> {% endblock %}
</div>
</body>
内容块有效。
菜单的块没有,它不显示page_name
对象的menu
属性。
但如果我插入 - &gt;
{% for menu in menu %}
{{ menu.page_name }}
{% endfor %}
直接进入Post.html模板,它有效。哦,它也自动使菜单成为一个列表,这让我感到困惑。为什么它会生成带有子弹点的列表,而不仅仅打印出自己的每个菜单对象?
答案 0 :(得分:1)
通过在 Post.html 中添加块标记,您可以覆盖基本模板中的菜单。从帖子模板中删除以下内容:
{% block menu %}
{% endblock %}