有没有办法在//I want to get the data from SampleId = 2, 4 and 6 added together
//from the Foo object and put into the Data of the new Bar object.
List.GroupBy(l => l.CompanyId).Select( x => new Bar { CompanyId = x.Key, ????? } );
语句中突破这个for
循环。目前我们的数据库错误地存储了多个主要电话,我想在找到第一个主要电话后突破for循环。提前感谢您的帮助。
if
更新
或者通过在{% for phone in user_phones %}
{% if phone.primary %}
<div>{% if phone.type %}{{ phone.type|title }}: {% endif %}<span itemprop="telephone">{{ phone.phone_format }}</span></div>
{% endif %}
{% endfor %}
分支
if
条件失败
答案 0 :(得分:2)
如果您必须留在模板图层中,可以使用regroup
。
{% regroup user_phones|dictsort:"primary" by primary as phones_list %}
{% for phone in phones_list %}
{% if phone.grouper %}
{{ phone.list.0.type }}
{% endif %}
{% endfor %}
它的作用
regroup
与dictsort
过滤器(也适用于查询集)一起将user_phones
中的实例按primary
的值分组。
regroup
会添加一个名为grouper
的属性,当按bool
(primary
的值)进行分组时,该属性将为True
或{{ 1}}。
False
然后迭代for
提供的变量phones_list
。由于我们按regroup
对结果进行了排序,因此primary
会告诉我们何时使用{% if phone.grouper %}
命中这些项目。
primary == True
将属于某个组的项目打包到属性regroup
中。因此,可以使用list
,phone.list.0.type
等访问第一项。
<强> 注意:的强>
如果您需要多次访问phone.list.0.phone_format
,可以将其分配给变量(使用with
):
foo.list.0
答案 1 :(得分:0)
Django模板中没有break
。您可以在视图中处理它,方法是将您要查找的primary phone
存储到变量中,然后在模板中调用它。