Я пытаюсь зарегистрировать пользователя с помощью сериализатора. У меня есть UserSeriaizer в RegisterSerializer, я думал, что пользователь создан и может получить доступ к serializer.validated_data, но я не могу получить доступ к serializer.data
Вот мои классы сериализатора:
class UserSerializer(serializers.ModelSerializer):
class Meta:
model = User
fields = ['id', 'username', 'first_name', 'last_name', 'email', 'password']
extra_kwargs = {
'id' : {'read_only' : True},
'password' : {'write_only' : True}
}
class RegisterSerializer(serializers.ModelSerializer):
user = UserSerializer()
class Meta:
model = Token
fields = ['user', 'key']
extra_kwargs = {
'key' : {'read_only' : True}
}
depth=1
def create(self, validated_data):
user = User.objects.create_user(**validated_data['user'])
user.is_active = False
token = Token.objects.create(user = user)
user.save()
return(user)
И вид:
serializer_class = RegisterSerializer(data={'user' : request.data})
try:
serializer_class.is_valid(raise_exception = True)
except Exception as e:
return(Response(serializer_class.errors, status=404))
else:
user = serializer_class.save()
print(serializer_class.data)
Модели следующие:
class User(AbstractUser):
id = models.AutoField(primary_key=True)
username = models.CharField(max_length=15, unique=True)
first_name = models.CharField(max_length=15, blank=True)
last_name = models.CharField(max_length=15, blank=True)
email = models.EmailField(max_length=254, unique=True)
password = models.CharField(max_length=254)
#is_active = models.BooleanField(default=True)
#is_admin = models.BooleanField(default=True)
USERNAME_FIELD = 'username'
objects = UserManager()
def __str__(self):
return self.username
и токен создается с использованием 'from rest_framework .authtoken.models import Token '