2011-05-08 3 views
35

J'ai des difficultés à paramétrer le fichier forms.py pour inclure une radio ou un bouton de sélection. J'ai regardé la documentation mais je n'avais aucune chance d'appliquer la bonne syntaxe.Boutons radio dans django Formulaires

Voici ce que j'ai actuellement en forms.py -

from django import forms 

class PictureForm(forms.Form): 
    like = forms.ChoiceField(???) 
    name = forms.CharField() 
    email = forms.EmailField() 
    message = forms.CharField() 

Et dans mon views.py -

from app.forms import PictureForm 

def index2(request): 
    if request.method == 'POST': 
     form = PictureForm(request.POST) 
     if form.is_valid(): 
      cd = form.cleaned_data 
      Picture.objects.create(like=cd['like'], name=cd['name'], email=cd['email'], message=cd['message']) 
      return HttpResponseRedirect ('/thanks/') 
    else: 
     form = PictureForm() 
    return render_to_response('index2.html', {'form':form},) 

Comment puis-je mettre en place un ensemble de boutons radio de 'valeur1', ' value2 ',' value3 '? Comment faire cela avec une liste déroulante? Merci.

Répondre

69

Examinez la définition du widget et des choix du champ lors de l'écriture de la classe de formulaire.

CHOICES=[('select1','select 1'), 
     ('select2','select 2')] 

like = forms.ChoiceField(choices=CHOICES, widget=forms.RadioSelect()) 

Le widget par défaut est un menu déroulant.

+13

Le premier élément du (tuple) est la valeur et le second est l'étiquette à afficher sur le bouton radio. – Martlark

+5

le widget ne devrait pas être appelé, seulement passé avec 'widget = forms.RadioSelect' à la place, en tant que [document officiel] (https://docs.djangoproject.com/fr/1.8/ref/forms/widgets/#widgets -hériter-du-select-widget) – Pynchia