2010-06-08 4 views
0

사용자가 Name (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'에 대한 코드를 게시 할 수 있습니까? 나는'Sex' 필드가 아닌 것 같아요. – Zach

+0

당신은 정말로 틀림 없습니다. 상황에 따라 여러 양식을 사용하고 있는데 성 필드를 포함하지 않는 기본 서식 (RelativeForm)을 사용하고있었습니다. 이 바보 같은 실수를 찾아 주셔서 감사합니다 ... –

답변

0

POST에서 사용했던 양식에 성 필드가 포함되지 않았으므로 물론 데이터가 사라졌습니다.

0

이 바보가 될 수 있지만 제대로 클래스 위 또는 글로벌 필드 디렉토리에 SEX_CHOICES를 포맷 했습니까? 예.

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

아니면 그것은 forms.radio 위젯으로 섹스를 포맷하는 것이 가장 좋습니다, 그래서 난 (내가 틀렸다면 정정 해줘)

에 choicefield 기본값을 믿고 당신이 대신 드롭 다운의 라디오 버튼을
관련 문제