2010-06-08 78 views
0

我有一个简单的形式供用户输入名称(CharField),年龄(IntegerField)和性别(ChoiceField)。但是,从性别选择字段中获取的数据不会显示在我的cleaned_data()中。使用调试器,我可以清楚地看到正在以正确的格式接收数据,但只要我做了form.cleaned_data(),我选择的字段数据的所有符号都消失了。任何帮助将不胜感激。 这里是相对码:清洁数据()没有一些输入的数据

class InformationForm(forms.Form): 
    Name = forms.CharField() 
    Age = forms.IntegerField() 
    Sex = forms.ChoiceField(SEX_CHOICES, required=True) 

    def get_information(request, username): 
     if request.method == 'GET': 
      form = InformationForm() 
     else: 
      form = RelativeForm(request.POST) 
      if form.is_valid(): 
       relative_data = form.cleaned_data 
+2

您正在使用不同的表单来处理数据。你可以发布'RelativeForm'的代码吗?我猜这不是'性'字段... – Zach 2010-06-08 15:54:18

+0

你确实是对的。我使用多种形式,具体取决于具体情况,我使用默认的(RelativeForm),它不包含Sex字段。谢谢你帮我找到这个愚蠢的错误... – 2010-06-09 13:25:01

回答

0

我在POST中使用的表单没有包含Sex字段,所以当然数据消失了。

0

这可能是愚蠢的,但你是正确格式SEX_CHOICES上面的类或在全球领域目录? ex。

SEX_CHOICES = (
    ('M', 'Male'), 
    ('F', 'Female'), 
    ('O', 'Other'), 
) 

或者,也许这是最好的格式化性爱作为forms.radio小部件,让你有单选按钮,而不是一个下拉菜单,因为我相信choicefield默认为(纠正我,如果我错了)