Donc, j'utilise jQuery ui à peau des boutons radio mais je ne peux pas Get Django pour rendre ma forme comme ça doit être fait.
J'ai besoin d'avoir cette structure: p> afin de résumer que j'ai besoin des boutons radio dans un Classe (radio) où ils ont une entrée code> code> et une étiquette Lorsque je rends le formulaire dans mon modèle avec ce que je veux exactement ce que je veux, à l'exception de la partie. J'ai donc essayé de boucler sur celui-ci qui me donne les étiquettes formatées différemment: p> qui me donne: p> donc le problème ici est que cela s'arrête en utilisant l'étiquette J'ai aussi essayé de faire quelque chose comme ça, mais alors l'étiquette code> code> et alors quelqu'un sait comment je peux Rendez-le correctement!? em> p> fyi, ceci est mes formulaires.py: p> pour code>. p>
{{profil_form .notify_new_friends}} Code> Je reçois ce qui suit: p>
pour code> et démarre à l'aide d'une étiquette code> code> sur wwapper tout avec. p>
label_tag code> Ne rendant pas quelque chose. p>
5 Réponses :
Comme il ne semble pas être un bon moyen de le faire, j'ai choisi de réorganiser le code généré à l'aide de jQuery.
<input type="radio" id="id_notify_new_friends_0" value="0" name="notify_new_friends" /><label for="id_notify_new_friends_0"> Immediately</label></li> <input type="radio" id="id_notify_new_friends_1" value="1" name="notify_new_friends" /><label for="id_notify_new_friends_1"> Never</label></li>
Je pense que s'il y a des possibilités de le faire sans JavaScript, nous devrions éviter JS ... surtout à la page Loading - Pire performance, pire référencement. Si nous utilisons JavaScript pour la manipulation, il devrait s'agir de la manipulation dynamique qui cause une raison comme une interaction.
Je ne crois pas qu'un javascript qui réorganise simplement le même contenu sur la page est susceptible d'affecter le référencement. Cela de côté, cette solution fonctionne très bien dans l'administrateur Django, où le référencement est non pertinent et le contrôle de la sortie HTML nécessiterait de remplacer plusieurs classes Django mentionnées dans la réponse de TNNJDEK.
Dans mon code, j'ai découvert que la modification du widget de à p> provoque magiquement la balise dans le formulaire, vous obtenez un résultante Code> Valeur Pour inclure l'attribut
ID code> avec l'index de l'élément ajouté. Si vous utilisez p>
étiquette code> enveloppé autour d'une entrée
code>. Si vous souhaitez l'entrée code> classique code> suivie de
étiquette code>, vous devez le faire: p>
{% for radio in form.value %}
<li>
{{ radio.tag }}
<label for="value_{{ forloop.counter0 }}">{{ radio.choice_label }}</label>
</li>
{% endfor %}
Try like this , I got it.. from django.forms.widgets import RadioFieldRenderer from django.utils.encoding import force_unicode from django.utils.safestring import mark_safe class RadioCustomRenderer( RadioFieldRenderer ): def render( self ): return mark_safe(u'%s' % u'\n'.join([u'%s' % force_unicode(w) for w in self])) in form widgets = { 'validity': forms.RadioSelect(renderer=RadioCustomRenderer), }
Malheureusement, il est plus compliqué qu'il ne devrait l'être, il semble que vous ayez besoin de remplacer au moins 2 classes: Créez d'abord un widget d'entrée de bouton radio personnalisé. Le seul but de nous remplacer la méthode de rendu est de se débarrasser de la structure gênante Django applique ( radiorenderer code> et
radioinpon code>. Ce qui suit devrait vous aider à démarrer, mais vous pourriez avoir besoin de le modifier un peu.
Je suis d'accord, la documentation pour cela manque d'OMI. Et pendant que je suis d'accord avec la majeure partie de la documentation Django, des exemples de formulaires HTML utilisant la coque ne sont pas la meilleure approche.
Si quelqu'un trébuche sur ce problème et que vous voulez simplement rendre le bouton radio sans UL: ils devraient suivre ce lien.
https://docs.djangoproject.com/fr/3.1/ref/Forms/widgets/#selector-widgets P>
Exemple ci-dessous. P>
{% for radio in myform.beatles %} <div class="myradio"> {{ radio }} </div> {% endfor %}
Enfin, j'ai trouvé la réponse! Merci.
docs.djangoproject.com/fr/dev/ref/forms/widgets / # Radioselect - Avez-vous lu ceci?
@ Alexandera.sosnovskiy oui, mais j'avais manqué le
Choice_Label Code> pour obtenir le titre d'étiquette, mais malheureusement faire
{{radio.tag}} code> ne me fournit pas d'identité et Par conséquent, je ne peux pas faire
étiquette pour code> que je dois faire.
Les identifiants de champ sont générés automatiquement, {{champ.auto_id}}
@Argskwargs J'aurais peut-être mal compris comment l'utiliser, mais non, cela ne me donne rien de rendu.