Это потому, что django-allauth
не имеет ничего общего с django-rest-framework-jwt
. Установки, которые вы установили внутри settings.py
, принадлежали django-allauth
, поэтому, если вы хотите использовать эти настройки, вам следует использовать django-allauth
просмотров.
С django-rest-framework-jwt
просмотрами, я взялвзгляд на obtain_jwt_token
представление, и я видел, что они используют get_user_model().USERNAME_FIELD
для получения поля имени пользователя.
from django.contrib.auth import get_user_model
def get_username_field():
try:
username_field = get_user_model().USERNAME_FIELD
except AttributeError:
username_field = 'username'
return username_field
Так что, если вы хотите изменить поле имени пользователя на другое, вы можете создатьпользовательская модель User
и затем установите значение для USERNAME_FIELD
на email
, чтобы пользователь мог войти через email
вместо username
. Вот так:
имя_приложения / models.py
from django.contrib.auth.models import AbstractUser
from django.db import models
class User(AbstractUser):
USERNAME_FIELD = 'email'
def __str__(self):
return self.email
и на ваших settings.py:
AUTH_USER_MODEL = 'app_name.User'