Django: Как проверить, есть ли что-то электронное письмо без формы

У меня есть HTML-форма для публикации в Django View, и из-за некоторых ограничений мне легче делать validation без обычных классов формы Django.

Моя единственная причина использования Django Forms - это поле электронной почты, которое введено.

Есть ли какая-либо функция для проверки того, что что-то является email, или я должен использовать EmailField для проверки и проверки его?

Ответ 1

Вы можете использовать следующие

from django.core.validators import validate_email
from django import forms

...
if request.method == "POST":
    try:
        validate_email(request.POST.get("email", ""))
    except forms.ValidationError:
        ...

если у вас есть <input type="text" name="email" /> в вашей форме

Ответ 2

Вы можете использовать метод validate_email() из django.core.validators:

>>> from django.core import validators
>>> validators.validate_email('[email protected]')
>>> validators.validate_email('[email protected]')
Traceback (most recent call last):
   File "<console>", line 1, in <module>
   File "/Users/jasper/Sites/iaid/env/lib/python2.7/site-    packages/django/core/validators.py", line 155, in __call__
    super(EmailValidator, self).__call__(u'@'.join(parts))
  File "/Users/jasper/Sites/iaid/env/lib/python2.7/site-packages/django/core/validators.py", line 44, in __call__
    raise ValidationError(self.message, code=self.code)
ValidationError: [u'Enter a valid e-mail address.']