Удалить поле username
из конечной точки входа в систему
Вы можете удалить поле username
, переопределив LoginSerializer
следующим образом:
from rest_auth.serializers import LoginSerializer as RestAuthLoginSerializer
class LoginSerializer(RestAuthLoginSerializer):
username = None
А затем добавьте следующее в settings.py
:
REST_AUTH_SERIALIZERS = {'LOGIN_SERIALIZER': 'path.to.your.LoginSerializer'}
ACCOUNT_AUTHENTICATION_METHOD = 'email'
ACCOUNT_EMAIL_REQUIRED = True
Добавить конечную точку для изменения адреса электронной почты и пароля
Оказалось, что на самом деле это был не вопрос ОП, но я оставляю его здесь для полноты.
Вы можете добавить конечную точку для изменения пользовательских настроек следующим образом:
from rest_framework import serializers, generics
from . import models
class UserSerializer(serializers.ModelSerializer):
class Meta:
model = models.CustomUser
fields = ('email', 'password')
class UserChangeView(generics.UpdateAPIView):
queryset = models.CustomUser.objects.all()
serializer_class = UserSerializer
Кстати, вам не нужны формы для вашего API.