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