Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
基于条件的Django模板迭代/循环计数_Django_Django Templates - Fatal编程技术网

基于条件的Django模板迭代/循环计数

基于条件的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模板系统不允许中断循环或设置计数器,即使在某些情况下演示了如何克服此限制,或如何创建新的模板标记来帮助您,也许您可以预先计算

我正在尝试创建一个类似于a
$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
仍然返回一个列表。您应该能够对其进行迭代。我改变了这个例子。