#django #django-rest-framework #djoser
Вопрос:
Я не могу обновить форму пользователя на Django rest-фреймворке с помощью djoser. Получение ошибки ключа: «репетитор» для validated_data.pop («репетитор»), проверил некоторые решения, но не помог
Вот что я сделал до сих пор
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 работает хорошо, но обновление выдает ошибку