2

インデックスをハードコーディングせずに、テンプレート内のインライン フォームセットから特定のフォームにアクセスする方法はありますか? フォームセットを反復処理する通常の方法は、次のようにすることです。

{% for form in formset %}
    {{ form }}
{% endfor %}

しかし、テンプレートに関するいくつかの詳細 (複数のフォームセットがあり、別のテーブル内に並べて表示する必要がありますfor) のため、インデックスで各フォームにアクセスできるとよいでしょう。のようにインデックスをハードコーディングすることでこれを行うことができますが{{ formset.0 }}、テンプレートで繰り返し処理を行っているため、forloop.counter でフォームを取得して、次のようなことができるようにするのが理想的です。

{% for field in fields %}
<tr>
    <td>{{ field }}</td>
    <td>{{ formset1.[forloop.counter0] }}</td>
    <td>{{ formset2.[forloop.counter0] }}</td>
</tr>
{% endfor %}

これを達成する方法はありますか?

4

1 に答える 1

5

テンプレート内でカスタム インデックスを作成することはできません。

独自のフィルターを作成することで、同じ結果を得ることができます。次のスニペットを参照してください。

http://djangosnippets.org/snippets/2740/

于 2013-10-03T16:30:28.580 に答える