Обновить динамическое поле django queryset - PullRequest
0 голосов
/ 11 марта 2019

я хочу обновить сборку django queryset с динамическим полем, например, param.Пример моего поля: planned:

 def update_data(period, old_planned, new_planned):
    Cost.objects.filter(period=period).update(
            planned=F('planned') - old_planned + new_planned)

Если я хочу передать поле planned, например, ввод параметров в def, как def(period, old_planned, new_planned, update_field), как это сделать с использованием F внутри?

1 Ответ

1 голос
/ 11 марта 2019

Успение

  1. Процесс фильтрации всегда против поля period

Изменения

Ради обобщения я добавил еще один аргумент param_value и изменил old_planned на old_param_value и new_planned на new_param_value


Пример кода

def update_data(period, <b>param_value, old_param_value, new_param_value):
    update_kwargs = {param_value:F(param_value) - old_param_value + new_param_value}</b>
    Cost.objects.filter(period=period).update(<b>**update_kwargs</b>)
...