2017-08-31 7 views
0

Je suis soit manquant quelque chose de très simple (et mon Google-Fu fait défaut), ou je suis bien loin de la piste. Vous faites l'appel!comment tester une soumission Django formset

Je voudrais écrire un test pour exercer POSTing un formset à une vue. L'erreur prend tout son sens, car je dois passer un dictionnaire comme deuxième argument, pas un Formset. J'espère qu'il y a une méthode sur Formset qui me donnera le dictionnaire approprié (avec les informations de formulaire de gestion), mais je ne peux pas le trouver pour la vie de moi.

MISE À JOUR:

Je l'ai travail en faisant ceci:

data = {} 
    for field in formset.management_form: 
     data["-".join((formset.management_form.prefix, field.name))] = field.value() 
    for form in formset: 
     for field in form: 
      data["-".join((form.prefix, field.name))] = field.value() 

    self.client.post(reverse("/myview"), data, follow=True) 

mais je me demande encore s'il y a un INTÉGRÉE dans la méthode formset pour ce faire, et je ne peux pas voir elle ....

Répondre

0

nous avons résolu en faisant passer la valeur suivante de données dans dict

data = { 
     # management_form data 
     'form-INITIAL_FORMS': '0', 
     'form-TOTAL_FORMS': '2', 
     'form-MAX_NUM_FORMS': '', 

     # First user data 
     'form-0-username': 'addplayer1', 
     'form-0-email': '[email protected]', 
     'form-0-password': 'admin', 

     # Second user data 
     'form-1-username': 'addplayer2', 
     'form-1-email': '[email protected]', 
     'form-1-password': 'admin' 
    } 

    self.client.post(reverse("/myview"), data)