Django Как обновить ... ВОЗВРАЩЕНИЕ

В Postgresql вы можете выполнить UPDATE с оператором RETURNING, чтобы получить некоторые столбцы после выполнения обновления. Это полезно, потому что вы можете сделать это за одно обращение к базе данных вместо двух.

UPDATE foo
SET bar = 10
WHERE id = 1
RETURNING baz

Как я могу смоделировать это в Django без использования необработанного запроса?

Я видел несколько старых вопросов на stackoverflow, заданных несколько лет назад, в которых говорилось, что это невозможно. Изменилось ли что-нибудь за последние годы?

Я не хочу делать следующее, что требует двух обращений к базе данных:

foo = Foo.objects.get(id=1)
foo.bar = 10
foo.save()
print(foo.baz)

Я видел этот билет четырехлетней давности, который был отклонен. Что-нибудь изменилось?

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