2010-09-24 8 views
4

Exactement comme this question, sauf qu'un a été fermé et accepté sans une vraie réponse. Il semble que je puisse utiliser un formset personnalisé et remplacer la méthode clean, mais cela ne répond toujours pas à la façon dont je vérifie que tout est rempli. Quelles propriétés dois-je examiner?Django: Rendre tous les formulaires formset requis?

Le formset est assez intelligent d'ignorer les formes supplémentaires qui ne sont pas modifiés.

* Screams * Cela m'a causé que l'agonie.

Répondre

3

J'ai trouvé la Think solution en creusant à travers la source ...

class BaseVehicleFormSet(BaseFormSet): 
    def clean(self): 
     for i in range(self.total_form_count()): 
      if not self.forms[i].has_changed(): 
       raise ValidationError("All vehicle forms must be filled in. Press \"remove\" if you've added too many.") 
+0

salut! J'essaie de faire quelque chose de similaire avec votre question. J'ai un formset avec deux formes. Je voudrais que l'utilisateur sélectionne une option pour chaque formulaire. Dans votre réponse, vous dites à l'utilisateur de tout sélectionner? c'est ce que j'ai compris .. ou je peux utiliser la même approche dans mon problème? Merci! – pavid

+0

oui ... cela devrait exiger qu'ils remplissent * tous * les formulaires. il vérifie chaque formulaire pour s'assurer qu'il a été changé (de son état par défaut/vide) et renvoie une erreur sinon. – mpen

+0

merci! J'avais une question à ce sujet, si vous voulez la fermer ou y répondre avec ce code, je l'accepterai. Ou je peux aussi répondre et rediriger vers votre question! – pavid

Questions connexes