我有QuerySet
GroupMembership
个按product__name
订购的对象,该对象已作为group_memberships
分配给我的模板; GroupMembership
个对象包含product
和group
字段,两者都具有name
属性。在输出中,我想每次membership.product.name
更改时呈现标题标记:
<h1>First Product</h1>
<p>One item</p>
<p>Another item</p>
<h1>Second Product</h1>
<p>First item in Second Product</p>
我最初的想法是在我存储最后一个产品名称时引入一个辅助变量,如果它与前一个产品名称不同(或为空),我会渲染<h1>
行。但是,Django缺少{% assign %}
标签。有没有办法在不引入自定义模板标签/上下文处理器的情况下执行此操作?或者我应该在我的视图中以某种方式进行分组,并为我的模板分配嵌套的dict
?我不想为此事安装任何自定义应用程序。
答案 0 :(得分:2)
使用here模板标记:
{% for membership in group_memberships %}
{% ifchanged %}
<h1>{{ membership.product.name }}</h1>
{% endifchanged %}
<p>{{ membership.group.name }}</p>
{% endif %}