所以我使用jQuery UI到skin the radio buttons,但我無法讓Django按照它必須完成的方式呈現我的窗體。使用RadioSelect小部件自定義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
到wrapp它所有。
我也試過做這樣的事情,但然後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)
https://docs.djangoproject.com/en/dev/ref/forms/widgets/#radioselect - 你讀過這個嗎? – 2012-07-19 08:24:54
@ AlexanderA.Sosnovskiy是的,但我錯過了'choice_label'來獲取標籤標題,但不幸的是'{{radio.tag}}'不能提供給我一個ID,因此我不能'標籤'我需要做的。 – olofom 2012-07-19 08:33:19
字段ID是自動生成嘗試,{{field.auto_id}} – 2012-07-19 08:47:00