Django модели обновляют вычисленное поле в соответствии с другим полем - PullRequest
0 голосов
/ 25 апреля 2020

Я использую Django и хочу обновить многие записи моей модели, используя вычисления, подобные SQL, например:

UPDATE table SET amount = pre_tax * 1.2 WHERE amount IS NULL;

Я хочу сделать это с помощью Django ORM. Я не нашел способов сделать это.

Этот ответ Django - обновить поле модели на основе другого поля не использовать массовое обновление, мне нужен синтаксис, который позволяет обновлять несколько записей.

1 Ответ

1 голос
/ 25 апреля 2020

Вы можете использовать F выражение и .update() для обновления нескольких записей одновременно . Выражение F позволяет вам ссылаться на существующее значение в строке

Model.objects.filter(amount__isnull=True).update(amount=F('pre_tax') * 1.2)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...