更新动态字段django queryset

问题描述 投票:0回答:1

我想用像param这样的动态字段构建更新django queryset。示例我的字段是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)中的param输入,如何保持使用F里面?

django django-rest-framework
1个回答
1
投票

Assumption

  1. 过滤过程总是针对period字段

Changes

为了概括,我添加了一个额外的参数,param_value并将old_planned更改为old_param_valuenew_planned更改为new_param_value

Code Sample

def update_data(period, param_value, old_param_value, new_param_value):
    update_kwargs = {param_value:F(param_value) - old_param_value + new_param_value}
    Cost.objects.filter(period=period).update(**update_kwargs)
© www.soinside.com 2019 - 2024. All rights reserved.