下面举例说明
{% 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执行加法运算所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)