Является ли Model.objects.update() в Django синхронным? Как получить обновленные строки после обновления значений?

Я использую Django с MySQL

Я хочу получить обработанные строки после выполнения Model.objects.update()

У меня есть код ниже:

# 1
User.objects.filter(
        pk__in=ids,
        status=old_status,
    ).update(
        status=new_status,
        pre_update_key=uuid_str,
        updated_at=datetime.datetime.now(),
    )
# 2
updated_users = list(
    User.objects.filter(pre_update_key=uuid_str).values()
)
print(len(updated_users))

Результаты различаются между средами

  • База данных 1: Пользователи имеет 3000 строк => len(updated_users) != 0 is correct
  • База данных 2: Пользователи имеет 300000 строк => len(updated_users) = 0

Как я могу получить updated_users после того, как запрос #1 будет полностью выполнен?

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