我有一个场景,我必须更新许多记录。但问题是我必须更新那些有一些变量作为输入的字段。如果任何传入的字段没有,则它不应该覆盖其现有的db值。
new_code = None
new_type = "new values"
user.objects(query).update(set__type=new_type ,set__code=new_code)
上面的查询返回10条记录,但我想只更新类型coz它有一个值。但不应在db中更新代码值。因为它的变量是none(来自用户输入表格)
我必须做出某种if else条件
db中的我有类似的记录 类型=旧,代码= 111 因为new_code不是作为输入而来的所以它应该只更新类型和db应该是这样的 type = new values,code = 111
答案 0 :(得分:0)
您需要在更新前清除用户输入 - 无有效数据类型和要存储的值。
因为这些只是kwargs,你可以建立一个你想要更新的字典:
update = {}
if new_type:
update['set__new_type' = new_type
if new_code:
update['set__new_code' = new_code
user.objects(query).update(**update)