そのため、 jQuery UI を使用してラジオ ボタンにスキンを適用していますが、Django でフォームを必要な方法でレンダリングすることはできません。
この構造が必要です:
<table>
<tr>
<td><label for="notify_new_friends">Notify when new friends join</label></td>
<td class="radio">
<input type="radio" name="notify_new_friends" id="notify_new_friends_immediately" value="1" checked="checked"/><label for="notify_new_friends_immediately">Immediately</label>
<input type="radio" name="notify_new_friends" id="notify_new_friends_never" value="0"/><label for="notify_new_friends_never">Never</label>
</td>
</tr>
</table>
要約すると、 と があるクラス (ラジオ) 内のラジオ ボタンが必要input
ですlabel for
。
テンプレートでフォームをレンダリングすると{{ profile_form.notify_new_friends }}
、次のようになります。
<ul>
<li><label for="id_notify_new_friends_0"><input type="radio" id="id_notify_new_friends_0" value="0" name="notify_new_friends" /> Immediately</label></li>
<li><label for="id_notify_new_friends_1"><input type="radio" id="id_notify_new_friends_1" value="1" name="notify_new_friends" /> Never</label></li>
</ul>
リスト部分を除いて、まさに私が欲しいものです。だから私はそれをループしてみました。これにより、異なる形式のラベルが得られます。
{% for item in profile_form.notify_new_friends %}
{{ item }}
{% endfor %}
それは私に与える:
<label><input type="radio" name="notify_new_friends" value="0" /> Immediately</label>
<label><input type="radio" name="notify_new_friends" value="1" /> Never</label>
したがって、ここでの問題は、使用を停止し、すべてをラップするためlabel for
だけに使用を開始することです。label
私もこのようなことを試みましたが、何もレンダリングlabel
しlabel_tag
ません。
{{ profile_form.notify_new_friends.0 }}
{{ profile_form.notify_new_friends.0.label_tag }}
{{ profile_form.notify_new_friends.0.label }}
これを適切にレンダリングする方法を知っている人はいますか!?
参考までに、これは私のforms.pyです:
self.fields['notify_new_friends'] = forms.ChoiceField(label='Notify when new friends join', widget=forms.RadioSelect, choices=NOTIFICATION_CHOICES)