我已设置以下模板
base.html文件
{% extends 'base/main_base.html' %}
{% block main-content %}
<h1>Header stuff<h1>
...
{% block article-content %}
{% endblock %}
{% endblock %}
article.html
{% extends 'base.html' %}
{% block article-content %}
<h2>Content</h2>
<p>More content</p>
{% endblock %}
现在,我将一个视图连接到了article.html,我希望使用动态视图数据来覆盖“base.html”模板中的“标题内容”。问题是,视图连接到article.html,它继承自base。
有没有办法从子模板覆盖部分基本模板?
答案 0 :(得分:1)
您可以在 base.html
中创建另一个template block{% extends 'base/main_base.html' %}
{% block main-content %}
<h1>{% block header %}Header stuff{% endblock %}<h1>
...
{% block article-content %}
{% endblock %}
{% endblock %}
并覆盖 article.html
中的阻止{% extends 'base.html' %}
{% block header %}My overwritten headline{% endblock %}
{% block article-content %}
<h2>Content</h2>
<p>More content</p>
...
{% endblock %}
答案 1 :(得分:1)
您还可以在base.html中查看&#34;标题&#34;值从文章(或任何其他视图)注入模板:
<强> base.html文件强>
{% extends 'base/main_base.html' %}
{% block main-content %}
<h1>
{% if header %}
{{ header }}
{% else %}
Header stuff
{% endif %}
<h1>
...
{% block article-content %}
{% endblock %}
{% endblock %}