0

私は次の「例」辞書を持っています

myDict = {obj1:{key_a1:value_a1, key_a2:value_a2, key_a3:value_a3} , 
          obj2:{key_b1:value_b1, key_b2:value_b2, key_b3:value_b3} ,
          obj3:{key_c1:value_c1, key_c2:value_c2, key_c3:value_c3} }

ここで、objはいくつかのクラスオブジェクトです。

キーobj2のみに属する値を反復処理したい場合は、テンプレート内でどのように実行しますか?

私はもう試した

{% for node,manyResults in myDict[obj2].items %}
//Error: Could not parse the remainder: '[obj2].items' from 'dict[obj2].items'

{% for node,manyResults in myDict[obj2] %}
//Error: Could not parse the remainder: '[obj2]' from 'dict[obj2]'

{% for node,manyResults in myDict.obj2.items %}  
//OR
{% for node,manyResults in myDict.obj2 %}
//Both no error, but the values don't appear

これを行う方法はありますか?

4

1 に答える 1

0

Djangoテンプレートでこれを行う方法はないと思います。コメントで述べたように、穴のことを要約するためにここで書き直します。

-

多分あなたはただ物事を複雑にしているだけです。これらの3つのdictが必要なすべてである場合は、それらを個別にコンテキストdictに追加し、テンプレートで個別に使用します。

私が言ったように、それらを繰り返すこともできます:

{% for key, item in myDict.items %}
    {% for innerkey, inneritem in item.items %}
        ...

また、最後の例は、'objX'が文字列の場合に機能します。これは、djangoテンプレートがそれをマップできるためです。そうしないと、名前空間で識別子が見つからないだけです(ご存知のとおり)。

それが役に立てば幸い。

于 2012-08-15T20:20:21.097 に答える