Django update_or_create по умолчанию с помощью объекта запроса

Я использую Django 3.2 и пытаюсь вызвать update_or_create как в приведенном ниже фрагменте:

from django.db import models
result = model.objects.update_or_create(
    field1="value1",
    field2="value2",
    defaults={
        "field3": "value3",
        "field4": ~models.Q(field3="value3"),
    },
)

field4 - это булево значение. Проблема в том, что возвращаемое значение в field4 после вызова метода - не булево, а объект запроса:

result[0].field4
<Q: (NOT (AND: ('field3', 'value3')))>

Однако если я обновлю объект, содержимое будет правильным:

result[0].refresh_from_db()
result[0].field4
False

Я уверен, что поле было обновлено, потому что до того, как я запустил сниппет, существовал экземпляр с теми же значениями для field1 и field2, но с противоположным значением в field4 (True). Мой вопрос: есть ли способ для update_or_create вернуть булево значение для field4 без повторного запроса экземпляра из БД?

Я уже проверял StackOverflow на наличие подобных вопросов, этот был самым близким, который я нашел но он все еще не отвечает на мой вопрос.

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