【发布时间】:2016-08-26 00:33:24
【问题描述】:
我有大约 5 个布尔值表。我想测试所有这些,如果一个或多个返回 true,然后做某事。
到目前为止,我已经尝试过类似的东西
{% if product.is_red == true %}
<h1>Has colors</h1>
{% elseif product.is_yellow == true %}
<h1>Has colors</h1>
{% elseif product.is_green == true %}
<h1>Has colors</h1>
{% elseif product.is_purple == true %}
<h1>Has colors</h1>
{% elseif product.is_black == true %}
{% endif %}
但是如果他们中的任何一个返回true,那么它会说
Has Colors
无论它返回 true 的次数是多少。有没有办法检查所有这些,如果再有一个返回 true 然后返回“有颜色”?
【问题讨论】:
-
为什么不在你的模型上添加一个额外的方法呢?哪个做同样的检查。这样您的视图中就有了良好的语义,在添加颜色时不需要更新。
-
@Yoshi,我认为模型方法不应该被用于这个简单的工作。
-
@VishalKumarSahu 我完全不同意。该模型正是简单决策的地方。将该决定放在视图中使其完全不可重用。如果您在另一个视图或代码中需要它,您将不得不再次编写完全相同的逻辑。太可怕了。
-
肯定不适用于分配工作的组织。 @Yoshi