2017-04-21 9 views
-1

私は自分のウェブサイトに、ユーザーがサイトに登録されている別のユーザーとコンテンツを共有できる機能を持っています。彼らは、別のユーザーに属する電子メールを入力することによってこれを行います。これは、モデル内のコンテンツの共有所有者として目的のユーザーを設定して、ポストされます。djangoフォームのデータを検証する方法は?

電子メールアドレスがサイトの登録ユーザーに属することを確認する最も良い方法は何ですか?

ありがとうございます!

答えて

0

効率的な方法は、指定されたメールでユーザーを検索することだと思います。 Django Userには既に一意のメールフィールドがあります。

あなたは基本的に書きたい場合:

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 
関連する問題