Получение KeyError: 'smth' при использовании validated_data.pop('smth')
Я не могу обновить форму пользователя на Django rest-framework с помощью djoser. Получаю KeyyError: "tutor" для validated_data.pop('tutor'), проверил несколько решений, но не помогло
Вот что я сделал на данный момент
serializers.py
class TutorUserSerializer(serializers.ModelSerializer):
class Meta:
model = TutorUser
fields = [
'id',
'full_name',
'phone_number',
'web_link',
]
class UserCreateSerializer(serializers.ModelSerializer):
tutor = TutorUserSerializer()
class Meta:
model = User
fields = [
'id',
'email',
'is_tutor',
'password',
'tutor',
]
extra_kwargs = {
'password': {
'write_only': True,
'style': {'input_type': 'password'}
}
}
def create(self, validated_data):
tutor_user_data = validated_data.pop('tutor')
user = User(
email = validated_data['email'],
is_tutor = validated_data['is_tutor'],
)
user.set_password(validated_data['password'])
user.save()
if user.is_tutor:
TutorUser.objects.create(tutor_user = user, **tutor_user_data)
return user
class UserSerializer(serializers.ModelSerializer):
tutor = TutorUserSerializer()
class Meta:
model = User
fields = [
'id',
'email',
'is_tutor',
'tutor'
]
def update(self, instance, validated_data):
tutor_user_data = validated_data.pop('tutor')
tutor_user = instance.tutor
tutor_user.full_name = tutor_user_data.get(
"full_name",
tutor_user.full_name
)
tutor_user.phone_number = tutor_user_data.get(
"phone_number",
tutor_user.phone_number
)
UserCreateSerializer работает хорошо, но обновление дает мне ошибку