У меня есть такая модель:
class AppUser(models.Model):
user = models.OneToOneField(User, related_name='app_user')
И у меня есть сериализатор для этого класса:
class AppUserSerializer(serializers.ModelSerializer):
first_name = serializers.CharField(source='user.first_name')
class Meta:
model = AppUser
fields = ('first_name',)
def create(self, validated_data):
first_name = validated_data.pop('first_name')
user = User.objects.create_user(username='test', first_name=first_name, last_name='test')
app_user = AppUser.objects.create(**validated_data, user=user)
return app_user
Но когда я пытаюсь создать пользователя с этим сериализатором, хотяЯ посылаю параметр с именем first_name
Я получаю эту ошибку:
KeyError: 'first_name'
И когда я запускаю программу в режиме отладки, я вижу, что validated_data
пусто!
Еще один момент: когда я добавляю write_only
к полю, оно появляется в validated_data
, но я не хочу, чтобы поле было write_only
!
Кажется, что-то делает это поле read_only
, как я могу это изменить?