2017-09-07 3 views
0

私のDjangoのモデルでは、私は今、私はそれがjinja2 docsJinja2ののGROUPBYの選択フィールド

<ul> 
{% for group in persons|groupby('group') %} 
    <li>{{ group.grouper }}<ul> 
    {% for person in group.list %} 
     <li>{{ person.first_name }} {{ person.last_name }}</li> 
    {% endfor %}</ul></li> 
{% endfor %} 
</ul> 

しかし{{ group.grouper }}文字列であるに説明するように、私のクエリセットを表示するには、groupbyフィルタを使用して選択フィールド

MY_GROUPS = [ 
    ('GR1', 'First Group'), 
    ('GR2', 'Second Group) 
] 

class MyModel(models.Model): 
    ... 
    group = models.CharField(choices=MY_GROUPS, max_length=3) 

を持っていますフィールド値:GR1GR2です。どのように私はハタ文字列として私のフィールドの表示名を取得できます。

<li>{{ group.grouper.get_group_display }}<li> 

:テンプレートでは、あなたがいないあなたがget_FOO_display()メソッドを使用することができますまずグループ第二グループ

答えて

0

メソッドの名前に()を含めます。

+0

いいえそのような要素はありません:strオブジェクト['get_group_display']}} 'grouperは文字列なので – Goran

+0

@Goran' group.get_group_display'だけを試してください。 – wencakisa

+0

グループはタプルであり、( 'str'、[オブジェクトのリスト])を含みます。group.grouperは最初のタプル要素であり、group.listはsecondです。そのようにすることはできません。これが私が助けを求める理由です。私の意見では、フィルター引数 'groupby( 'group')'に新しいフィルターを書くかどうかの答えがあります。しかし、誰かが解決策を知っていることを願っていました。 – Goran

関連する問題