2011-05-08 67 views
35

我很难设置forms.py文件来包含广播或选择按钮。我查看了文档,但没有运用正确的语法。Django中的单选按钮形式

这是我目前在forms.py -

from django import forms 

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

在我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},) 

我怎样才能建立一套 'VALUE1' 的单选按钮,“值2','值3'? 如何使用选择下拉菜单执行此操作? 谢谢。

回答

69

在编写表单类时请注意设置字段的小部件和选项。

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

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

默认控件是一个下拉选择。

+13

(元组)中的第一项是值,第二项是要显示在单选按钮上的标签。 – Martlark 2014-01-16 07:42:59

+5

小部件不应该被调用,只能通过'widget = forms.RadioSelect'传递,正如[官方文档显示](https://docs.djangoproject.com/en/1.8/ref/forms/widgets/#widgets -inheriting-从 - - 选择窗口小部件) – Pynchia 2015-08-17 20:49:22