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
4

2 に答える 2

0

これはばかげているかもしれませんが、クラスの上またはグローバルフィールドディレクトリでSEX_CHOICESを適切にフォーマットしましたか?元。

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

または、Sexをforms.radioウィジェットとしてフォーマットするのが最善かもしれません。そのため、choicefieldのデフォルトがデフォルトであると信じているので、ドロップダウンの代わりにラジオボタンがあります(間違っている場合は修正してください)

于 2010-06-08T18:59:13.503 に答える
0

私が POST で使用していたフォームには Sex フィールドが含まれていなかったので、もちろんデータは消えてしまいました。

于 2010-06-09T13:27:16.937 に答える