1

Django を使用して、正常に動作し、必要な結果を返すかなり複雑な SQL クエリがあるため、Django のモデル クエリ表記法を使用してこれを再現しようとはしません。

結果をテンプレートに渡し、次の表記を使用して表示できます。

{% for line in myresults %}
...
{{ line.0 }}
...
{{ line.1 }}
etc.
{% endfor %}

この結果セットで regroup タグを使用する方法はありますか?

私が試してみると:

{% regroup myresults by myresults.0 as mylist %}
{% for item in mylist %}
{{ item.grouper }}
{% for line in item.list %}
...
{{ line.0 }}
{{ line.1 }}
etc.

以前と同じように (再グループ化せずに) すべての結果を取得しますが、item.grouper を取得しません (複数のグループではなく、単一のグループとして「なし」と表示されます)。

これは構文の問題ですか、それとも再グループ化の機能に適合しないものを試していますか?

オブジェクトのリストで通常の方法で regroup を使用しましたが、上記の方法で困惑しました。

助言がありますか?前もって感謝します。

4

1 に答える 1

1

リストの最初の{% regroup myresults by myresults.0 as mylist %}アイテムでmyresults グループ化すると、アイテムのいくつかのフィールドでグループ化する必要があります。

ここからの次の例:

cities = [
    {'name': 'Mumbai', 'population': '19,000,000', 'country': 'India'},
    {'name': 'Calcutta', 'population': '15,000,000', 'country': 'India'},
    {'name': 'New York', 'population': '20,000,000', 'country': 'USA'},
    {'name': 'Chicago', 'population': '7,000,000', 'country': 'USA'},
    {'name': 'Tokyo', 'population': '33,000,000', 'country': 'Japan'},
]

...そして、次のように国別に並べられた階層リストを表示したいとします。

India
    Mumbai: 19,000,000
    Calcutta: 15,000,000
USA
    New York: 20,000,000
    Chicago: 7,000,000
Japan
    Tokyo: 33,000,000

タグを使用して{% regroup %}、都市のリストを国別にグループ化できます。テンプレート コードの次のスニペットは、これを実現します。

{% regroup cities by country as country_list %}

<ul>
{% for country in country_list %}
    <li>{{ country.grouper }}
    <ul>
        {% for item in country.list %}
          <li>{{ item.name }}: {{ item.population }}</li>
        {% endfor %}
    </ul>
    </li>
{% endfor %}
</ul>
于 2012-08-27T16:21:07.187 に答える