Aus*_*tin 3 django django-templates
无论出于何种原因,我都无法在本地复制此问题,但是在我的模板之一中的生产服务器上,重新组合标签正在做一些奇怪的事情。我正在尝试将所有具有相同 pick_id 的捐赠分组,并仅显示“错过”了多少捐赠。出于某种原因,它在我的列表中不止一次显示相同的pickup_id。
看法
missed_routes = Donor.objects.filter(missed='YES').order_by('pickup_date')
Run Code Online (Sandbox Code Playgroud)
模板
{% block content %}
{% regroup missed_routes by pickup_id as missed_pickups %}
<div class="missedColumn">
<h2>Missed Donations</h2>
<p>Looks like we have some stragglers…</p>
<p>These routes have missed donations in them.</p>
{% for routes in missed_pickups %}
<p><a href="/reschedule/{{ routes.grouper }}">{{ routes.list.0.route }}</a> - {{ routes.list.0.pickup_date }} ({{ routes.list|length }} missed - {{ routes.list.0.pickup_id }}</p>
{% endfor %}
</div>
Run Code Online (Sandbox Code Playgroud)
结果 html # 600 是pickup_id
<p><a href="/reschedule/600">Syosset</a> - Sept. 14, 2012 (1 missed - 600</p>
<p><a href="/reschedule/423">Huntington Station</a> - Sept. 14, 2012 (1 missed - 423</p>
<p><a href="/reschedule/600">Syosset</a> - Sept. 14, 2012 (2 missed - 600</p>
Run Code Online (Sandbox Code Playgroud)
在拾取 html 输出中迭代每个捐赠者时
<p><a href="/reschedule/600">Syosset</a> - Sept. 14, 2012 (1 missed - 600
<ul>
<li>134170</li>
</ul>
</p>
<p><a href="/reschedule/423">Huntington Station</a> - Sept. 14, 2012 (1 missed - 423
<ul>
<li>134938</li>
</ul>
</p>
<p><a href="/reschedule/600">Syosset</a> - Sept. 14, 2012 (2 missed - 600
<ul>
<li>134174</li>
<li>133151</li>
</ul>
Run Code Online (Sandbox Code Playgroud)
问题是 Django 的重组取决于您重组所依据的属性对列表进行排序。查看文档:
请注意, {% regroup %} 不会对其输入进行排序!我们的示例依赖于城市列表首先按国家排序的事实。如果城市列表没有按国家对其成员进行排序,则重组将天真地为一个国家显示多个组
因此,更改:
missed_routes = Donor.objects.filter(missed='YES').order_by('pickup_date')
Run Code Online (Sandbox Code Playgroud)
到
missed_routes = Donor.objects.filter(missed='YES').order_by('pickup_id')
Run Code Online (Sandbox Code Playgroud)