2012-03-25 3 views
0

Je veux faire un formulaire d'inscription d'utilisateur où j'aurai des champs tels que le prénom, le nom, l'email, le re-email, et le mot de passe.Comment valider pour que les emails d'entrée soient égaux dans Django?

Donc, ma question est de savoir comment valider afin que l'e-mail d'entrée et re-email est égal. Je ne pouvais pas trouver de l'aide lors de la lecture de la documentation pour la validation ici: https://docs.djangoproject.com/en/1.4/ref/validators/

J'ai trouvé ce site quand googlé, mais il semble Django a beaucoup changé depuis 2006. En raison AlwaysMatchOtherField n'existe pas dans 1.4

Voici est le site http://www.b-list.org/weblog/2006/sep/02/django-tips-user-registration/

+0

Voulez-vous que l'utilisateur saisisse deux fois son adresse e-mail et confirme qu'il l'a fait correctement? –

+0

oui, c'est correct – starcorn

Répondre

3

Vous pouvez remplacer vos formulaires clean méthode pour faire validate fields that rely on each other.

class MyForm(models.ModelForm): 

    def clean(self): 
     cleaned_data = super(MyForm, self).clean() 
     if cleaned_data['email'] != cleaned_data['re_email']: 
      raise forms.ValidationError("Your emails don't match") 
     return cleaned_data 

En ce qui concerne un formulaire d'inscription, vous devez utiliser django-registration

+0

merci, je vais regarder dans :) – starcorn

0

voici ce que je faisais à l'instar de https://github.com/django/django/blob/master/django/contrib/auth/forms.py:

def clean_email2(self): 
    email = self.cleaned_data.get("email") 
    email2 = self.cleaned_data.get("email2") 
    if email and email != email2: 
     raise forms.ValidationError(
      "Your email address differs", 
     ) 
    return email2 

Afin d'éviter les erreurs, il est très important de vérifiez que les adresses e-mail sont renseignées.

Questions connexes