2011-05-07 40 views
0

我有以下django表单。它有一个选择领域。即时尝试获取在radioSelect小部件中选择的值。即时通讯使用(cleared_data)方法执行此任务。 ,但由于某种原因它不能访问clean_data方法。django表单的问题

异常值:'AnswersForm' object has no attribute 'cleaned_data'

forms.py:

 

class AnswersForm(forms.Form): 

     CHOICES=[('sf','asdf')] 
     answers = forms.ChoiceField(choices=CHOICES, widget=forms.RadioSelect()) 

 

和views.py:

 

    form = forms.AnswersForm() 
    form.cleaned_data['answers'] 
 

没有人知道是怎么回事?还是有另一种方法来执行此操作?

在此先感谢

回答

4

你不显示任何代码,你将数据传递到窗体或检查它是否有效。通常的做法是这样的:

if request.method == 'POST': 
    form = Forms.AnswersForm(request.POST) 
    if form.is_valid(): 
     do_something_with(form.cleaned_data['answers']) 

直到调用is_valid()

+2

1的形式已经被验证之后,你只能访问cleaned_data – gruntled 2011-05-07 01:25:09

0

使用时无法访问cleaned_dataForm.clean()它只是返回self.cleaned_data

注: 清洁的forms.py

数据
def clean(self,): 
    Here you can clean the form. 

**对于参考** Go Here (Django doc)

+0

'Form.clean()'是有这样你可以增加正常的清洁功能,这是在内部使用当你调用'.valid()'时。这个问题似乎不是关于表单验证,而是关于只访问cleared_data。调用'clean()'不是实现它的方法。 – Henry 2011-05-07 01:31:18