繁体   English   中英

django queryset能用现有值+ 1更新自己模型的字段吗?

[英]django queryset able update own model's field with existing value + 1?

抱歉,如果标题没有太大意义,我不确定如何用很少的单词正确地显示它。

不管怎么说,我真正想要的是......我知道我们可以filter querysets ,然后使用update来更新所有字段queryset而不做一个循环,然后save()

但是我真正需要的是……

User.objects.filter().update(username=this is where I want to update BUT I want to update itself's username+1)

如果我以循环的方式进行操作,它将类似于

all_users = User.objects.filter()
for user in all_users:
    user.username = user.username + str(1)
    user.save()

但是有办法使用update吗?

在此先感谢您的帮助。

可以使用django.db.models F()来完成此操作

from django.db.models import F
User.objects.filter(pk=pk).update(new_attr=F('username')+str(1))

要么

all_users = User.objects.filter()
for user in all_users:
   user.username =  F('username') + str(1)
   user.save()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM