Djangoフォームを使用してhtmlフォームを作成しています。フォームレイアウトに特別なものが含まれているため、BoundFieldsを使用します。
フォームにRadioSelectウィジェットを含むChoicesFieldがあります。<li>
:の中にimgを入れたいので、選択肢を手動で繰り返します。
<ul>
{% for country in form.country %}
<li>
<img src="{{ MEDIA_URL }}country_icons/country_{{ country.value }}.png">
{{ country }}
</li>
{% endfor %}
</ul>
ただし、出力には入力要素のidタグが含まれていません。
<ul>
<li>
<img src="/media/country_icons/country_nl.png">
<label>
<input type="radio" value="nl" name="country" checked="checked">
Netherlands
</label>
</li>
<li>
<img src="/media/country_icons/country_de.png">
<label>
<input type="radio" value="de" name="country">
Germany
</label>
</li>
</ul>
一方、オプションを繰り返し処理せずにフィールドを出力する場合は、次のようになります。
{{ form.country }}
出力します:
<ul>
<li>
<label for="id_country_0">
<input id="id_country_0" type="radio" value="nl" name="country" checked="checked">
Netherlands
</label>
</li>
<li>
<label for="id_country_1">
<input id="id_country_1" type="radio" value="de" name="country">
Germany
</label>
</li>
</ul>
したがって、私の問題は、手動で選択肢を反復処理したときにidフィールドが表示されないことです。これにより、css/javascriptセレクターに不整合が生じます。
だから私の質問は、とにかくidタグを含める方法はありますか?この動作はとにかく意図されていますか?それともこれはバグかもしれませんか?誰かが同様の種類の問題に遭遇しますか?