これが私がうまくいくと思ったものです: ゲームによって索引付けされ、gameSlots を含む辞書があります。 {{gameSlot.game.name}} が有効であることを確認しました (および他の gameSlot.game.x プロパティも問題ありません) {game: [gameSlot1, gameSlot1]} を保持していますが: {% for gameSlot2 in assignedGameSlotsInMyGames[gameSlot.game] %} には反復がありません
私は明らかに間違ったことをしていますか?(必要に応じて、より完全なコードを投稿できます。コードをかなり醜い回避策に置き換えましたが、テスト結果などを表示するために元に戻して喜んでいます)。
詳細が追加されました....
データは次のとおりです。
回避策は、これらの gameSlots の内容を出力します:
{% for game, gameSlots in assignedGameSlotsInMyGames.iteritems() %}
{% if gameSlot.game.name == game.name %}
{% for gameSlot2 in gameSlots %}
<tr>
<td> {{gameSlot2.user.email}} </td>
<td> {{gameSlot2.gameCharacter.characterType}} </td>
</tr>
{% endfor %}
{% endif %}
{% endfor %}
追記:ある理由:
if gameSlot.game.name == game.name
特定のユーザーに属するすべての gameSlots を反復処理していることです。その gameSlot を表示するときに、その gameSlot が参照するゲームに関する追加情報を含めたいと考えています。そのゲームを直接参照する試み (以下) がうまくいかなかったので、すべてのゲームをループして、現在のゲームに一致するものを「外側のループ」で使用します (ラメ、はい - そのため、質問を投稿しています)。注: 私がテストした例では、"Later" という名前のゲームが 1 つだけあります。
すべての gameSlot.games を移動する外側のループがあります。唯一の反復は、gameSlot.game.name == "Later" の場合です。この余分なループではなく、次のものを使用できると思いました。
{% for gameSlot2 in assignedGameSlotsInMyGames[gameSlot.game] %}
<tr><td>Iteration</td></tr>
{% endfor %}
assignedGameSlotsInMyGames は、gameSlots である値を持つゲーム オブジェクトによってインデックス付けされたディクショナリであるため、これは機能するはずだと考えていました。しかし、印刷された反復はありません。
次のコードのデバッグ:
<tr><td colspan="6">TestCode - gameSlot.game = {{gameSlot.game}}, assignedGameSlotsInMyGames[gameSlot.game] = {{assignedGameSlotsInMyGames[gameSlot.game]}} </td></tr>
<tr><td colspan="6">TestCode - gameSlot.game.name = {{gameSlot.game.name}}, assignedGameSlotsInMyGames = {{assignedGameSlotsInMyGames}}</td></tr>
<tr><td colspan="6">Test from Ellochka - assignedGameSlotsInMyGames.game = {{assignedGameSlotsInMyGames.game}}</td></tr>
出力あり:
TestCode - gameSlot.game = , assignedGameSlotsInMyGames[gameSlot.game] =
TestCode - gameSlot.game.name = Later, assignedGameSlotsInMyGames = {: [, ]}
Test from Ellochka - assignedGameSlotsInMyGames.game =
これは、Jinja2 テンプレート (および Python) を使用する初めての経験であるため、非常に混乱する可能性があります。