Así que estoy usando jQuery UI en skin the radio buttons pero no puedo hacer que Django renderice mi formulario de la forma en que debe hacerlo.Personalizar formularios de Django con el widget RadioSelect
Necesito tener esta estructura:
<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>
Entonces, para resumir lo que necesito los botones de radio dentro de una clase (de radio) donde tienen un input
y una label for
.
cuando me hacen la forma en mi plantilla con {{ profile_form.notify_new_friends }}
consigo el siguiente:
<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>
¿Qué es exactamente lo que quiero, excepto para la lista de partes. Así que traté de bucle sobre ella que me da las etiquetas con formato diferente:
{% for item in profile_form.notify_new_friends %}
{{ item }}
{% endfor %}
que me da:
<label><input type="radio" name="notify_new_friends" value="0" /> Immediately</label>
<label><input type="radio" name="notify_new_friends" value="1" /> Never</label>
lo tanto, el problema aquí es que se deja de usar label for
y comienza a utilizar simplemente label
a WRAPP se todo con.
También intenté hacer algo como esto, pero luego label
y label_tag
no representan nada.
{{ profile_form.notify_new_friends.0 }}
{{ profile_form.notify_new_friends.0.label_tag }}
{{ profile_form.notify_new_friends.0.label }}
Así que ¿alguien sabe cómo puedo hacer esto correctamente !?
FYI, esta es mi 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 - ¿Has leído esto? –
@ AlexanderA.Sosnovskiy sí, pero me había perdido el 'choice_label' para obtener el título de la etiqueta, pero lamentablemente hacer' {{radio.tag}} 'no me proporciona una identificación y, por lo tanto, no puedo hacer' label for' lo cual necesito hacer – olofom
id de campo se auto generan try, {{field.auto_id}} –