Django模板系统中没有break。Django模板系统不是用python编写的,而是用with its own language编写的。 根据您需要做的事情,您可能会发现this question很有用。否则,只需将您尝试在HTML上打印的唯一账户放在RequestContext的特殊字段中即可。
if ([child for child in obj.children if child.possessions.toys]):
# Whatever
Django模板:
我的方法是使用regroup构建符合或不符合条件的候选集:
{% regroup obj.children by possessions.toys|length_is:"0" as by_toys %}
{% for check in by_toys %}{% if check.grouper == False %}
Whatever
{% endif %}{% endfor %}
{% with statement=1 %}
{% for obj in listObject %}
{% if ifStatement and statement %}
{% changeStatement statement as statement %} // when u don't want to enter in if again.
Do your job here!!
{% endif %}
{% endfor %}
{% endwith %}
在模板自定义标签中:
@register.simple_tag
def changeStatement(status):
return not status
9条答案
按热度按时间31moq8wy1#
我认为你应该用slice来达到你的目的
chhkpiq42#
Django模板系统中没有
break
。Django模板系统不是用python编写的,而是用with its own language编写的。根据您需要做的事情,您可能会发现this question很有用。否则,只需将您尝试在HTML上打印的唯一账户放在
RequestContext
的特殊字段中即可。ej83mcc03#
你不能使用break语句,但你可以选择不将它们打印在html上。这不是最好的解决方案,但你可以使用它。我用下面的一个;
它基本上看起来像这样的浏览器。http://i.stack.imgur.com/MPbR3.jpg
o2rvlv0m4#
anhgbhbe5#
你可以使用你的Django模板系统for loop在javascript for loop中作为内部循环,并可以使用break如下:
oiopk7p56#
我找到了一个有条件的方法。这是丑陋和黑客,但它的工作(对我来说)。
first
是OP想要的,但这更接近地回答了实际问题。鉴于此:
我想知道我的对象是否有任何孩子的财产是玩具。
我做了什么:
Python等价:
Django模板:
我的方法是使用
regroup
构建符合或不符合条件的候选集:regroup
构建了一个新对象,它本质上是:length_is:"0"
确保列表中最多有三个元素,grouper
是True
或False
或''
。然后我们迭代列表并检查False
值。if
将永远不会被命中。False
grouper
的列表。False
grouper
的列表。False
和True
grouper
s的列表。vyu0f0g17#
在这种情况下,你可以检查是否forloop。counter == 1或if forloop。首先,简单地打印第一项。
jucafojl8#
Django模板系统中没有
break
,但是你可以用下面的架构来实现像break这样的语句。(循环将进行迭代,但你什么也不做。)1-与一起使用定义变量以确定当前状态,
2-使用模板自定义标记更改语句以否定当前状态。
在模板中使用如下:
在模板自定义标签中:
6jjcrrmo9#
切片是上面提到的最好的!
或者,您可以使用模板变量来处理更复杂的continue/break:
如何在Django模板中使用break和continue?