Вы можете передать его со словарем и распаковать его. Фактически мы можем выполнять массовые обновления с помощью:
data = {'ca{}'.format(x+1): F('ca{}'.format(x)) for x in range(i, 98)}
CategoryNick.objects.filter(
author=request.user
).update(<b>**data</b>)
Таким образом, мы выполним один запрос на обновление, который будет выглядеть следующим образом:
UPDATE app_categorynick
SET ca2 = ca1, ca3 = ca2, ca4 = ca3, …, ca98 = ca97
Обратите внимание на две звездочки (**
) впереди. Если вы вызываете функцию f(**some_dict)
с some_dict
, например some_dict = {'a': 4, 'b': 2}
, она будет вызывать f
с f(a=4, b=2)
.
. Обычно, если в модели хранится произвольное количество значений, не рекомендуется делать это с огромным количеством столбцов. Поскольку вы никогда не узнаете, нужен ли дополнительный столбец. Обычно создается дополнительная модель и определяется отношение «многие к одному» из этой модели к целевой модели.