2010-07-22 5 views
1

J'ai une forme qui a deux champs pour Entiers:Django: comment valider le formulaire complet

class DemoForm(forms.Form): 
b_one = forms.IntegerField(
    error_messages={ 
     'required':'Please enter a valid number.' 
    }, 
    label = 'NumberOne', 
    required = True, 
    help_text = 'e.g. 266492' 
) 
b_two = forms.IntegerField(
    error_messages={ 
     'required':'Please enter a valid number.' 
    }, 
    label = 'NumberTwo', 
    required = True, 
    help_text = 'e.g. 262865', 
) 

et je suis en train de valider ces champs

def clean_b_one(self): 
    self.validate_form(self.cleaned_data['b_one']) 

def clean_b_two(self): 
    self.validate_form(self.cleaned_data['b_two']) 

Maintenant ce que je veux faire est dans validate_form je vérifie, si ces numéros existent dans la base de données, d'autres levant forms.ValidationError

Mais ce que je veux aussi faire d'autres validations lorsque ces champs de formulaire sont valides, fondamentalement, certains vérifient le formulaire en fonction de l'entrée et soulèvent des erreurs personnalisées, où puis-je ajouter de la logique? ou quelle est la meilleure façon de le faire?

Répondre

1

Vous pouvez faire une vérification individuelle de champ dans clean_b_one comme vous avez, et augmenter ValidationError s si quelque chose ne rentre pas. Ou remplacez la méthode clean pour effectuer la vérification des champs croisés. Documentation générale à trouver here.

Questions connexes