Quindi sto utilizzando l'interfaccia utente di jQuery su skin the radio buttons ma non riesco a ottenere da Django il rendering del mio modulo come deve essere fatto.Personalizzare i moduli Django con il widget RadioSelect
ho bisogno di avere questa struttura:
<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>
Quindi, per riassumere che ho bisogno i pulsanti di scelta all'interno di una classe (radio), dove hanno un input
e label for
.
Quando mi rendo forma nel mio modello con {{ profile_form.notify_new_friends }}
ottengo il seguente:
<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>
Che è esattamente quello che voglio, tranne per la lista-parte. Così ho provato loop su di essa, che mi dà le etichette formattate in modo diverso:
{% for item in profile_form.notify_new_friends %}
{{ item }}
{% endfor %}
che mi dà:
<label><input type="radio" name="notify_new_friends" value="0" /> Immediately</label>
<label><input type="radio" name="notify_new_friends" value="1" /> Never</label>
Così il problema qui è che si smette di usare label for
e inizia utilizzando solo label
a Wrapp è tutto con.
Ho anche provato a fare qualcosa di simile, ma poi il label
e il label_tag
non rendono nulla.
{{ profile_form.notify_new_friends.0 }}
{{ profile_form.notify_new_friends.0.label_tag }}
{{ profile_form.notify_new_friends.0.label }}
Quindi qualcuno sa come posso rendere questo correttamente !?
Cordiali saluti, questo è il mio 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 - hai letto questo? –
@ AlexanderA.Sosnovskiy sì, ma mi mancava il 'choice_label' per ottenere il titolo dell'etichetta, ma sfortunatamente facendo' {{radio.tag}} 'non mi fornisce un ID e quindi non posso fare' label for' che devo fare. Gli ID campo – olofom
sono generati automaticamente, {{field.auto_id}} –