基于条件的Django模板迭代/循环计数
我正在尝试创建一个类似于a基于条件的Django模板迭代/循环计数,django,django-templates,Django,Django Templates,我正在尝试创建一个类似于a$I==0的迭代$i++来自Django中的PHP,基于条件 {% for item in event.products %} {% if item.category = "Treat" %} 现在-我想知道这个条件满足了多少次(category=treat),以及如何在两个与该循环匹配的项之后停止for循环 谢谢 django模板系统不允许中断循环或设置计数器,即使在某些情况下演示了如何克服此限制,或如何创建新的模板标记来帮助您,也许您可以预先计算
$I==0的迭代$i++代码>来自Django中的PHP,基于条件
{% for item in event.products %}
{% if item.category = "Treat" %}
现在-我想知道这个条件满足了多少次(category=treat),以及如何在两个与该循环匹配的项之后停止for循环
谢谢 django模板系统不允许中断循环或设置计数器,即使在某些情况下演示了如何克服此限制,或如何创建新的模板标记来帮助您,也许您可以预先计算您的需求,并通过在视图中切片来准备要打印的列表。我同意@DRC的观点,即此业务逻辑最好在视图代码中完成,而不是在模板中完成
如果您仍然需要模板解决方案:
{% regroup event.products by item.category as grouped_products %}
{% for group in grouped_products %}
{% if group.grouper == "Treat" %}
{% for item in group.list|slice:":2" %}
{{ item.imageURL }}
{% endfor %}
{% endif %}
{% endfor %}
和的文档。感谢迄今为止的帮助。这很好,但是我该如何回传我在旧代码中回传的一些变量:{{item.imageURL}}不幸的是,这将在ESP中进行,因此视图代码没有变化。slice
仍然返回一个列表。您应该能够对其进行迭代。我改变了这个例子。