Django .save() не обновляется при PUT-запросе

Я пытаюсь обновить иностранное поле с помощью PUT-запроса на ресурсе. Мой serializer.data и http-ответ корректны после вызова .is_valid, но объект не обновляется.

Вид

def put(self, request, user_pk):
    try:
        userById = getUserById(user_pk)
    except ChatUser.DoesNotExist:
        raise Http404
    serializer = ChatUserInputSerializer(userById, data=request.data)
    if serializer.is_valid():
        serializer.save()
        return Response(serializer.data, status=status.HTTP_200_OK)
    return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)

Сериализатор

class IdentificationInputSerializer(serializers.ModelSerializer):
    class Meta:
        model = Identification
        fields = "__all__"
        read_only_fields = ["id"]


class ChatUserInputSerializer(serializers.ModelSerializer):
    identification = IdentificationInputSerializer()

    class Meta:
        model = ChatUser
        fields = ["id", "userId", "identification"]
        read_only_fields = ["id", "userId"]

    def update(self, instance, validated_data):
        identification = validated_data.pop('identification')
        instance.identification.salutation = identification.get('salutation', instance.identification.salutation)
        instance.identification.firstname = identification.get('firstname', instance.identification.firstname)
        instance.identification.name = identification.get('name', instance.identification.name)
        instance.identification.street = identification.get('street', instance.identification.street)
        instance.identification.plz = identification.get('plz', instance.identification.plz)
        instance.identification.city = identification.get('city', instance.identification.city)
        instance.identification.country = identification.get('country', instance.identification.country)
        instance.save()
        return instance

Я почти уверен, что django не сохраняет связанные модели, когда вы вызываете .save().
Попробуйте instance.identification.save()

Вернуться на верх