Django kanban тип доски сортировка по объему

У меня есть приложение django с задачами, хранящимися в базе данных, похожими на макет типа доски канбан, и каждая запись имеет столбец и порядок для того, где они находятся в списке.

Проблема в том, что этот список может достигать сотен или тысяч записей в одном столбце, при изменении столбца на основе того, куда пользователь помещает карту, столбец обновляется и порядок пересчитывается/устанавливается для всех записей в этом столбце.

Есть ли более эффективный способ, чем тяжелый процесс обновления тысяч записей для установления порядка?

Вы захотите использовать bulk_update для более эффективного обновления записей в массовом порядке:

https://docs.djangoproject.com/en/4.0/ref/models/querysets/#bulk-update

Я бы предложил использовать функциональность F из Django для обновления всех объектов в наборе запросов с помощью правила арифметических значений

Что-то вроде:

Model.objects.filter(…).update(order=F('order') - 1)

https://docs.djangoproject.com/en/4.0/ref/models/expressions/

Более сложный, но умный ответ: https://stackoverflow.com/a/72894011/10992051

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