簡體   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