2010-06-08 4 views
0

У меня есть простая форма для ввода пользователем имени (CharField), Age (IntegerField) и Sex (ChoiceField). Однако данные, взятые из поля выбора пола, не отображаются в моем cleaned_data(). Используя отладчик, я ясно вижу, что данные принимаются в правильном формате, но как только я делаю form.cleaned_data(), все признаки моих данных поля выбора исчезли. Любая помощь будет принята с благодарностью. Вот относительный код: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

+0

Вы действительно правы. Я использую несколько форм в зависимости от ситуации, и я использовал стандартный (RelativeForm), который не включает поле «Секс». Спасибо, что помогли мне найти эту тупая ошибка ... –

ответ

0

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

0

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

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

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