【发布时间】:2020-12-25 17:06:30
【问题描述】:
我正在使用 Django 开发一个字典应用程序。该应用的主要主题之一是显示定义提要。
具体来说,我有:
- 列出新定义的“索引”提要,
- “词条”供稿,其中列出了特定词条的定义,
- 和一个“标签”提要,其中列出了带有特定标签的定义。
index.html:
{% block body %}
<h1>Definitions</h1>
<ul>
{% for definition in definitions %}
// definition HTML
{% endfor %}
</ul>
{% endblock %}
headword.html:
{% block body %}
<h1>{{ headword }}</h1>
<ul>
{% for definition in headword.definitions_headword.all %}
// definition HTML
{% endfor %}
</ul>
tag.html:
{% block body %}
<h1>{{ tag }}</h1>
<ul>
{% for definition in tag.definitions_tag.all %}
// definition HTML
{% endfor %}
</ul>
显然,我需要这三个文件可以共享的基本 feed.html 模板。对于h1 标签没问题。但是,我遇到了 for 循环可迭代变量的问题。
我尝试将 {% block iterable %}{% endblock %} 嵌套在 feed.html 的 for 循环中,就像在 {% for definition in {% block iterable %}{% endblock %} %} 中一样,然后在 @987654327 中插入定义、headword.definitions_headword.all 和 tag.definitions_tag.all @,但 Django 似乎不支持。
我可能会向所有三个模板传递一个“定义”上下文变量,并将其用作所有三个 for 循环中的可迭代对象,但是有没有办法在不接触 Python 代码的情况下做到这一点?
【问题讨论】:
标签: python django django-templates feed template-inheritance