0

我有一个简单的表单供用户输入姓名(CharField)、年龄(IntegerField)和性别(ChoiceField)。但是,从性别选择字段中获取的数据未显示在我的 clean_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
4

2 回答 2

0

这可能很愚蠢,但是您是否在类上方或全局字段目录中正确格式化了 SEX_CHOICES?前任。

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

或者最好将 Sex 格式化为 forms.radio 小部件,所以你有单选按钮而不是下拉菜单,因为我相信选择字段默认为(如果我错了,请纠正我)

于 2010-06-08T18:59:13.503 回答
0

我在 POST 中使用的表单不​​包括 Sex 字段,因此数据当然消失了。

于 2010-06-09T13:27:16.937 回答