質問: ### [やりたいこと] Djangoのtemplate内で、forループ中にcontentから値を取得したいのですが、loop_counter0を使用してcontentのインデックスを指定したいです。 (q1、q2は別のDBテーブルです) ``` ... {% for q1 in queryset1 %} {{ q1.id }} {{ q2.{{ loop_counter0 }}.text }} ... ``` 下記のサイトでは、「the conclusion is that it is impossible from template side. I'd preprocess using zip function in controller」と言っていますが、やはりtemplateだけでは解決不可能でしょうか。 [参考サイト] https://stackoverflow.com/questions/31602661/accessing-nested-list-by-variable-in-django-templates?noredirect=1&lq=1 また、その場合どのように解決すべきでしょうか。
回答: > > 下記のサイトでは、「the conclusion is that it is impossible from template side. I'd preprocess using zip function in controller」と言っていますが、やはりtemplateだけでは解決不可能でしょうか。 > > > `参考サイト` のページを見ましたが、書かれているような記述は見つけられませんでした。 `参考サイト` にあげられているページが違うのではないでしょうか。 閑話休題、以下回答です。 `参考サイト` を参考にするのであれば、 duplicate と判定されている先の記事 * Get list item dynamically in django templates - Stack Overflow に解決策が書かれているように思いますが、いかがでしょう。こちらは少し違うなという感じですか? > > また、その場合どのように解決すべきでしょうか。 > > > 上の「 Get list ... 」ページのやり方でもよいですが、どちらかというと template に渡す前に view 側で `zip()` しておくのがシンプルかと思います。 * `zip(*iterables)` | Built-in Functions — Python 3.7.3 documentation (お使いの Python のバージョンがわからないので 3.7 のページをリンクしていますが、適宜読み替えてください) このパターンを複数の view で使用するならカスタムテンプレートタグを作ってそれを使う形もありだと思います。