2017-04-21 1 views
-1

J'ai une fonctionnalité sur mon site Web où un utilisateur peut partager du contenu avec un autre utilisateur enregistré sur le site. Ils le font en entrant un email appartenant à un autre utilisateur. Ceci est ensuite affiché, définissant l'utilisateur souhaité en tant que propriétaire partagé du contenu dans le modèle.Comment valider des données dans des formulaires django?

Quel est le meilleur moyen de vérifier que l'adresse e-mail appartient à un utilisateur enregistré du site?

Merci!

Répondre

0

Je pense que le moyen efficace est de rechercher l'utilisateur avec le courrier donné. Django User a déjà un champ mail unique.

si vous voulez écrire de base:

from django.core.validators import validate_email 

class SampleForm(forms.Form): 
    mail = forms.CharField(max_length=50) 

    def clean(self): 
     cleaned_data = super(SampleForm, self).clean() 
     mail = cleaned_data.get('mail') 
     # validate the structure of the mail address 
     try: 
      validate_email(mail) 
     except validate_email.ValidationError: 
      raise forms.ValidationError('email is not valid') 
     # now find if mail has registered 
     try: 
      User.objects.get(email=mail) 
     except User.DoesNotExist: 
      raise forms.ValidationError('This mail address is not registered') 
     return cleaned_data