3

何らかの理由でこの問題をローカルで再現することはできませんが、テンプレートの1つにある本番サーバーでは、再グループ化タグが奇妙なことをしています。同じpickup_idを持つすべての寄付をグループ化し、「逃した」寄付の数を表示しようとしています。何らかの理由で、リストに同じpickup_idが複数回表示されています。

見る

missed_routes = Donor.objects.filter(missed='YES').order_by('pickup_date')  

レンプレート

{% 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…&lt;/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>

結果の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>

ピックアップ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>
4

1 に答える 1

9

問題は、Djangoの再グループ化は、再グループ化する属性によって順序付けられているリストに依存することです。ドキュメントを参照してください:

{%regroup%}は入力を順序付けしないことに注意してください!この例は、都市リストが最初に国別に並べられているという事実に依存しています。都市リストでメンバーを国別に並べ替えていない場合、再グループ化すると、1つの国に対して複数のグループが単純に表示されます。

したがって、変更します。

missed_routes = Donor.objects.filter(missed='YES').order_by('pickup_date')  

missed_routes = Donor.objects.filter(missed='YES').order_by('pickup_id')  
于 2012-09-17T01:41:27.013 に答える