У меня есть следующее представление в django, которое регистрирует пользователя и отправляет ответ после сериализации пользовательских данных с использованием сериализатора.
@api_view(['POST'])
def sign_in(request):
username = request.data['username']
password = request.data['password']
user = authenticate(username=username, password=password)
if user is not None:
update_last_login(None, user) # update the user's last login date
serializer = UserSignInSerializer(user)
return Response(serializer.data)
return Response('Invalid login credentials', status=401)
Что мне не нравится в этом представлении, так это способ извлечения имени пользователя и пароля непосредственно из тела. Я хотел бы использовать тот же сериализатор, чтобы проверить, является ли тело действительным. Возможно ли это, или мне нужно создать новый сериализатор только для проверки запросов? Вот существующий сериализатор:
class UserSignInSerializer(serializers.ModelSerializer):
class Meta:
model = User
fields = ['first_name', 'last_name', 'email', 'username', 'profile']