python – 在django模板中对forloop.counter执行加法运算

python – 在django模板中对forloop.counter执行加法运算,第1张

概述我想在 django模板中为给定条件执行减少forloop.counter的值,是否可以在django中执行. 下面举例说明 {% for i in item %} {% if forloop.counter0|divisibleby:4 %} Start {% endif %} {% if i %} item{{ forlo 我想在 django模板中为给定条件执行减少forloop.counter的值,是否可以在django中执行.

下面举例说明

{% for i in item %}    {% if forloop.counter0|divisibleby:4 %}        Start    {% endif %}        {% if i %}            item{{ forloop.counter }}        {% else %}            ######### Here I want to reduce value of forloop.counter by 1 ###########        {% endif %}    {% if forloop.counter|divisibleby:4 %}        End    {% endif %}{% endfor %}

在上面的代码中,8个完美的项目输出将是

Startitem1item2item3item4EndStartitem5item6item7item8End

但假设item2为None,则输出为

Startitem1 item3item4EndStartitem5item6item7item8End

如果条件不满足,我想通过每次减少forloop的值以适当的升序(每步增加1)的形式打印它.请不要建议自定义模板标签,我知道这一点,我认为它是最后一个选项.

解决方法 我真的很怀疑django会让你轻松搞乱forloop.counter,反正也不会搞乱它.显而易见的解决方案是在迭代之前过滤掉列表,这可以在您的视图中完成,或者(如果您坚持在模板中执行)使用自定义过滤器.

或者您可以将列表包装在生成器函数中,该函数将负责过滤和编号,即:

def filteriternum(seq):    num = 0    for item in seq:        if not item:            continue        num += 1        yIEld num,item

在这里,您可以在视图中执行换行,也可以编写将执行换行的标记的自定义模板过滤器.

总结

以上是内存溢出为你收集整理的python – 在django模板中对forloop.counter执行加法运算全部内容,希望文章能够帮你解决python – 在django模板中对forloop.counter执行加法运算所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1196640.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存