проблема:
Я пытаюсь сериализовать поле электронной почты, используя Django Rest Framework, однако сервер говорит, что не принимает электронную почту. Все письма встречаются с ошибкой «Введите действующий адрес электронной почты». Ниже приведены мои конфигурации.
serializers.py
class UserSerializer(serializers.ModelSerializer):
class Meta:
model = User
fields = ('email', 'password')
models.py
class User(AbstractBaseUser, PermissionsMixin):
email = models.EmailField(unique=True, verbose_name='email address')
first_name = models.CharField(max_length=256, verbose_name="First Name", blank=True)
last_name = models.CharField(max_length=256, verbose_name="Last Name", blank=True)
id = models.UUIDField(primary_key=True, unique=True)
data = JSONField(default=default_data, name="device_data")
is_staff = models.BooleanField(default=False)
is_active = models.BooleanField(default=True)
date_joined = models.DateTimeField(default=timezone.now)
objects = UserManager()
USERNAME_FIELD = 'email'
REQUIRED_FIELDS = []
django .core.validators.py
@deconstructible
class EmailValidator:
message = _('Enter a valid email address. Not valid')
code = 'invalid'
...
domain_whitelist = ['localhost', 'gmail', 'gmail.com', '@gmail.com']
http ie на сервер
http -f POST http://127.0.0.1:8000/reg email="l55@gmail.com", password='pw'
ответ
HTTP/1.1 400 Bad Request
Allow: POST, OPTIONS
Content-Length: 42
Content-Type: application/json
Date: Mon, 30 Mar 2020 00:11:14 GMT
Server: WSGIServer/0.2 CPython/3.7.3
Vary: Accept, Cookie
X-Content-Type-Options: nosniff
X-Frame-Options: DENY
{
"email": [
"Enter a valid email address."
]
}
Предыдущее усилие:
- Мне сказали добавить домены в свойство domain_whitlist (что я и сделал)
- Я также пытался использовать класс пользователя Django по умолчанию, но я столкнулся с той же ошибкой.
Вы можете мне помочь?
Спасибо!