from rest_framework import serializers from django.contrib.auth.models import User from rest_framework_simplejwt.tokens import RefreshToken class UserLoginSerializer(serializers.Serializer): username = serializers.CharField() profile_name = serializers.SerializerMethodField() # Добавляем поле для профиля password = serializers.CharField(write_only=True) def get_profile_name(self, user): return f"{user.first_name} {user.last_name}".strip() or user.username # Если имя пустое, используем username def validate(self, data): from django.contrib.auth import authenticate user = authenticate(username=data["username"], password=data["password"]) if not user: raise serializers.ValidationError("Неверный логин или пароль") refresh = RefreshToken.for_user(user) return { "username": user.username, "profile": self.get_profile_name(user), # Возвращаем профильное имя "access": str(refresh.access_token), "refresh": str(refresh) }