誰かがDjangoの電子メールアドレスを検証する方法を説明できますか? 例として、電子メールが有効な大学の電子メールアドレスで、終端が.eduであるかどうかをチェックしたいと考えています。 どうすればいいですか?電子メールの検証を確認するDjango
1
A
答えて
0
あなたのニーズに合わせて正規表現を作成するか、標準的な表現を使用することもできます。
import re
EMAIL_REGEX = r"(^[a-zA-Z0-9_.+-][email protected][a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$)"
# EMAIL_REGEX = r'\[email protected]\.edu' # If you only want to allow edu.
class SignUpForm(forms.ModelForm):
...
def clean_email(self):
email = self.cleaned_data.get('email')
if email and not re.match(EMAIL_REGEX, email):
raise forms.ValidationError('Invalid email format')
return email
実際には、より良いアプローチは、(あなたが本当にあなたのカスタムフォーマットへの電子メールアドレスを制限する必要がある場合を除き)だろう自動的に同じことを保証する、@Alasdairが提案されているようEmailField
を使用することです。
2
SignUp.email
フィールドがEmailField
であると仮定すると、Djangoは有効なメールアドレスであることを確認します。あなたがする必要があるのは、それが.edu
で終わることをチェックし、そうでない場合はValidationError
にしてください。
class SignUpForm(forms.ModelForm):
class Meta:
model = SignUp
fields = ['full_name','email']
def clean_email(self):
email = self.cleaned_data.get('email')
if not email.endswith('.edu'):
raise forms.ValidationError("Only .edu email addresses allowed")
return email
バリデーターを作成してモデルフィールドに追加する方が良い場合は、このようにして、DjangoはあなたのSignUpForm
を使用するとき、そしてDjangoの管理者のような他の場所でモデル検証を行うときにあなたのバリデータを実行します。
from django.core.exceptions import ValidationError
def validate_edu_email_address(value):
if email.endswith('.edu'):
raise forms.ValidationError("Only .edu email addresses allowed")
class SignUp(models.Model):
email = models.EmailField(validators=[validate_edu_email_address])
...
関連する問題
- 1. regex電子メールの確認django
- 2. django電子メールを確認するまでユーザを認証する方法
- 3. 電子メール確認
- 4. Codeigniter電子メールの確認
- 5. 電子メールの確認Firebase
- 6. Django REST auth:電子メール確認後のdjango-allauthテンプレートのレンダリングエラー
- 7. PHP - 電子メールの検証
- 8. HTML電子メールの検証?
- 9. 電子メールの検証:JavaScript
- 10. preg_match電子メールの検証。
- 11. 電子メール確認プロセス
- 12. AngularFire電子メール認証エラー
- 13. 電子メールの検証をトリガーする
- 14. 電子メールの検証をスキップする
- 15. Androidの電子メールの検証とFirebaseの電子メールの検証
- 16. Javeryの検証 - サーバーサイドのDjangoから電子メールとユーザー名の可用性を確認する
- 17. 電子メール検証php
- 18. Pythonで電子メールを確認する
- 19. カラバッシュで電子メールを確認する
- 20. 電子メールの検証と電話桁
- 21. PHP電子メールIBM電子メールのみの検証(ワールドワイド)
- 22. Laravel電子メールで確認する
- 23. 電子メールの資格証明の有無を確認
- 24. PHP電子メールのサブスクリプションの検証と既存のものの確認
- 25. ユーザーの詳細の確認ページの更新 - ユーザー名/電子メールのリモート検証
- 26. PythonのDjangoは電子メールの検証clean_emailが
- 27. 電子メールによるFirebaseデータベース認証
- 28. ドメインチェックによるAngularJS電子メール認証
- 29. SignUpでのFirebase電子メールの確認
- 30. Htmlの電子メールの確認