django 根据某个函数 更新某个字段

2019-10-30 00:35:58 +08:00
 realzhangsan

data = Data.objects.filter(need_add=1)

for i in data:
	added = i.need_add + 1
	i.need_add = added
	i.save()

这样的一个功能:对 Data 数据中,need_add 为 1 的都进行 +1,当日加 1 只是象征性都函数, 请问有没有 django orm 的方法,一次性更新某个字段,这个字段的值是:原本改字段经过一个函数后的返回值。

类似于:Data.objects.filter(need_add=1).update(need_add=Myfunc(F('need_add')))

这个意思

3350 次点击
所在节点    Django
3 条回复
belingud
2019-10-30 00:46:26 +08:00
我记得 F 对象可以直接对字段进行运算啊,比如 fileter().update(need_add=F("need_add" + 1))
belingud
2019-10-30 00:47:43 +08:00
抱歉应该是 fileter().update(need_add=F("need_add") + 1)
bnm965321
2020-03-12 10:26:22 +08:00
这个字段的值是:原本改字段经过一个函数后的返回值

-------

好像只能用 SQL 定义的函数

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/614257

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX