cleaned_data() не имеет некоторых введенных данных

У меня есть простая форма для ввода пользователем имени (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 ответа

Решение

Форма, которую я использовал в POST, не включала поле Sex, поэтому данные исчезли.

Это может быть глупо, но правильно ли вы отформатировали SEX_CHOICES над классом или в каталоге глобальных полей? ех.

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

Или, может быть, лучше отформатировать Sex как виджет forms.radio, чтобы у вас были переключатели вместо выпадающего списка, так как я считаю, что поле выбора по умолчанию имеет значение (поправьте меня, если я ошибаюсь)

Другие вопросы по тегам