Django 1.10.5
Tout d'abord, form.py, qui est la source du formulaire Il existe également un moyen d'utiliser ModelForm, mais cette fois, nous allons créer quelque chose qui est complété dans form.py
form.py
from django import forms
from django.contrib.admin import widgets
import os
CHOICE = {
('0','mignonne'),
('1','cool'),
('2','passion'),
}
form SampleForm(forms.Form):
select = forms.ChoiceField(label='attribut', widget=forms.RadioSelect, choices= CHOICE, initial=0)
Vous pouvez spécifier les éléments sélectionnés par défaut en définissant ʻinitial = index`
Si «required = False» ne nécessite pas de sélection, il est préférable de le supprimer.
Cette fois j'écrirai simplement une vue qui ne passe que ce formulaire
views.py
from django.shortcuts import render, get_object_or_404, redirect
from forms.forms import *
def sample_view(request):
form = SampleForm
return render(request,
project/sample.html,
{"form" : form}
)
Tel quel Faisons le
sample.html
{{ form }}
En gros, c'est tout ce dont vous avez besoin, mais si vous avez plusieurs éléments d'entrée dans un formulaire, vous pouvez les contrôler individuellement comme suit.
sample.html
{{ form.select.label }}{{ form.select}}
attribut
<ul id="id_select">
<li>
<label for="id_select_0">
<input checked="checked" id="id_select_0" name="purpose" type="radio" value="0" />
mignonne
</label>
</li>
<li>
....
</ul>
Comme décrit dans Référence officielle, vous pouvez contrôler le balisage généré en tournant avec pour plus finement. pouvez Par exemple, si vous procédez comme suit
sample.html
{{ form.select.label }}
{% for radio in form.select %}
{{ radio.tag }}
<label>{{ radio.choice_label }}</label>
{% endfor %}
Produit quelque chose qui est (et sera) gérable
attribut
<input checked="checked" id="id_select_0" name="select" type="radio" value="0" />
<label>mignonne</label>
<input id="id_select_1" name="select" type="radio" value="1" />
<label>cool</label>
...
sample.html
{{ form.select.label }}
{% for radio in form.select %}
{{ radio.tag }}
<label for="id_select_{{ radio.index }}">{{ radio.choice_label }}</label>
{% endfor %}
Si tu fais ça
attribut
<input checked="checked" id="id_select_0" name="select" type="radio" value="0" />
<label for="id_select_0">mignonne</label>
<input id="id_select_1" name="select" type="radio" value="1" />
<label for="id_select_1">cool</label>
...
Oui