1

Djangoでの再グループ化には 1 つの問題があります。状況は次のとおりです。views.py による辞書があります。次のことを行う必要があります。

Box A_name:
1 section:
1.1 element 1
...
1.n element n

N section:
N.1 element
...
N.m element

Box B_name:
...

html のコードは次のとおりです。

{% load get_boxfilter %}
{% regroup all_boxes|dictsort:"box_type" by box_type as type %}

<ul>
{% for pos in type %}
    <li> Box {{ pos.grouper|get_boxfilter }}
    <ul>
        {% for item in pos.list %}

          <li> element {{ item.name }} section {{ item.section }}</li>
        {% endfor %}
    </ul>
    </li>
{% endfor %}
</ul>

get_boxfilter:

#!/usr/bin/python
# -*- coding: utf-8 -*- 
from django import template
register = template.Library()


@register.filter(name='get_groupfilter')
def get_boxfilter(value):
    gb_list = [u"NULL", u"A_name", u"B_name", u"N_name" ]
    return gb_list[int(value)]

ボックス名でかなり再グループ化します。

Box A_name:
1. element 1 section 1
2. element 2 section 2
3. element 3 section 1
Box B_name:
...

しかし、「セクション」(int 値) でグループ化する方法は?

Box A_name:
1 section:
1.1 element 1
1.2 element 3
2 section:
2.1 element 2

ありがとう

4

1 に答える 1

1

セクションごとに再グループ化しませんか?

{% load get_boxfilter %}
{% regroup all_boxes by section as type %}

<ul>
{% for pos in type %}
    <li> Box {{ pos.type|get_boxfilter }}
    <ol style="list-style-type: decimal">
         <li>{{ pos.grouper }}</li>
         <ol style="list-style-type: decimal">
             {% for item in pos.list %}
                 <li> element {{ item.name }}</li>
             {% endfor %}
         </ol>
    </ol>
    </li>
{% endfor %}
</ul>
于 2012-12-18T18:11:55.360 に答える