Sergei_Erjemin
@Sergei_Erjemin
Улыбайся, будь самураем...

Как в Django сделать что-то типа Tb.objects.all()[:N].update(que=quie_id])?

Если кратко, то допустим есть сервис на Django который регулярно, но относительно редко получает кучу данных и распределяет задачи по нескольким другим сервисам, которые данные обработают, уложат их в накопители (а накопители конечны) и т.д. Сервисы обработки работают неравномерно, в каких-то сервисах накопились ещё не выпаленные задания прошлых периодов и при распределении все это надо учесть. При сервис распределения определяет, что, допустим, N объектов из таблицы Tb распределить для обработки в сервис que=quie_id, и тут логично применить вот такую конструкцию:

Tb.objects.all()[:N].update(que=quie_id])

Но Django не умеет делать update по [:N]. При этом N довольно велико и перебирать весь queryset и менять записи по одной -- долго. Как поступить чтобы сделать групповой update на ограниченный queryset?
  • Вопрос задан
  • 41 просмотр
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы