Объект модели Django изменился после обновления

У меня есть простая модель следующего вида:

class Invite(models.Model):
    status = models.CharField()
    ....
    ....

В моем представлении я обновляю сущность Invite:

invite_obj = Invite.objects.get(pk=id) # currently invite.status = "OLD"

print(invite_obj.status) # prints OLD

invite_serializer = CustomSerializer(invite_obj) # a custom serializer which updates the instance status from "OLD" to "NEW"

if invite_serializer.is_valid():
    invite_serializer.save()

print("after update", invite_obj.status) # prints NEW

Переменная invite_obj была модифицирована после обновления. Как была изменена переменная, хранящая исходную сущность?

EDIT: код для пользовательского сериализатора

class CustomSerializer(serializers.ModelSerializer):
    def update(self, instance, validated_data):
        with transaction.atomic():
           instance.status = "NEW"
           ...
           instance.save()
        return instance
           

пожалуйста, измените следующий код:

invite_obj = Invite.objects.get(pk=id) # currently invite.status = "OLD"

print(invite_obj.status) # prints OLD

invite_serializer = CustomSerializer(invite_obj) # a custom serializer which updates the instance status from "OLD" to "NEW"

if invite_serializer.is_valid():
    invite_serializer.save()

print("after update", invite_obj.status) # prints NEW

to:

invite_obj = Invite.objects.get(pk=id) # currently invite.status = "OLD"

print(invite_obj.status) # prints OLD

invite_serializer = CustomSerializer(instance = invite_obj, data=request.data) # a custom serializer which updates the instance status from "OLD" to "NEW"

if invite_serializer.is_valid():
    invite_serializer.save()

print("after update", invite_obj.status) # prints NEW

Я надеюсь, что это сработает для вас наверняка.

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