次のユース ケースを想像してください。レポート テンプレートのディクショナリがあります。各レポート テンプレートには、ID と名前があります。多かれ少なかれ次のようになります。
reports = [ { 'ID' : 'A1',
'NAME' : 'special report 1 for department A',
... (other fields irrelevant to the question's matter)
},
{ 'ID' : 'X9',
'NAME' : 'special report 9 for department X',
... (other fields irrelevant to the question's matter)
},
]
レポートへのアクセスと表示は、データベースに保存されます。
レポートの ID と同じフィールド名を持つフォームを作成しました。そして、テンプレートにフォームを表示する必要がある瞬間まで、すべてがうまくいきます。適切なフォームのフィールドにアクセスする方法がわかりません。この構文は機能しません:
{% for report in reports %}
<tr>
<td>{{ report.ID }}</td>
<td>{{ report.NAME }}</td>
<td>{{ form.report.ID }}</td>
</tr>
{% endfor %}
また:
{% for report in reports %}
<tr>
<td>{{ report.ID }}</td>
<td>{{ report.NAME }}</td>
{% with report.ID as key %}
<td>{{ form.key }}</td>
{% endwith %}
</tr>
{% endfor %}
動作しません。
構文はどのように見えるべきですか? 以下のコードの疑問符の代わりに何を配置する必要がありますか?
{% for report in reports %}
<tr>
<td>{{ report.ID }}</td>
<td>{{ report.NAME }}</td>
<td>{{ form.??? }}</td>
</tr>
{% endfor %}
私はこの解決策に出くわしました:Django Templates: Form field name as variable? 私の問題を解決する方法が他にない場合は、それを使用する必要があると思います。