Поле обновления заданий Django, увеличивающее/уменьшая его текущее значение

Я пытаюсь изменить порядок узлов в моем дереве. Все работает отлично, но я хотел бы знать, есть ли какой-нибудь красивый, простой способ обновления нескольких полей, увеличив его фактическое значение на 1. Позвольте мне проиллюстрировать.

Objtree.objects.select_related().filter(pk__in = ids).update(sort_order = 1)

Этот код изменит каждое значение столбца sort_order на 1, но я хотел бы изменить его на что-то вроде:

Objtree.objects.select_related().filter(pk__in = ids).update(sort_order += 1)
# or
Objtree.objects.select_related().filter(pk__in = ids).update(self.sort_order = 1)

Итак... есть что-то подобное? Ничто не приходит мне на ум или мой экран через googling.

Спасибо за halp!

Ответ 1

Вы хотите использовать объекты F().

from django.db.models import F
Objtree.objects.filter(pk__in=ids).update(sort_order=F('sort_order')+1)

Смотрите документацию