2010-06-08 11 views
0

J'ai un formulaire simple pour un utilisateur à entrer dans Nom (CharField), Age (IntegerField) et Sex (ChoiceField). Cependant, les données provenant du champ Choix du sexe n'apparaissent pas dans mes données nettoyées(). En utilisant un débogueur, je peux clairement voir que les données sont reçues dans le format correct mais dès que je fais form.cleaned_data() tout le signe de mes données de champ de choix est parti. Toute aide serait grandement appréciée. Voici le code relatif:les données saisies (0) ne possèdent pas certaines des données saisies

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

Vous utilisez un formulaire différent pour gérer les données. Pouvez-vous poster le code pour 'RelativeForm'? Je devine que ce n'est pas le champ "Sexe" ... – Zach

+0

Vous avez en effet raison. J'utilise plusieurs formulaires en fonction de la situation et j'utilise celui par défaut (RelativeForm) qui n'inclut pas le champ Sexe. Merci de m'aider à trouver cette erreur stupide ... –

Répondre

0

Le formulaire que j'utilisais dans POST n'incluait pas le champ Sexe, donc bien sûr les données disparaissaient.

0

Cela peut être stupide, mais avez-vous formatez correctement SEX_CHOICES au-dessus de la classe ou dans un répertoire mondial des champs? ex.

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

Ou peut-être il est préférable de mettre en forme le sexe comme un widget forms.radio, si vous avez des boutons radio au lieu d'une liste déroulante que je crois que les paramètres par défaut de choicefield à (me corriger si je me trompe)