2016-07-11 34 views
1

我可以在對象update方法中做一個整數增量嗎?對象`update`方法中的整數增量(Django)

I.e.我做:

photo = Photos.objects.get(owner_id=user_id) 
    photo.total_likes = photo.total_likes + 1 
    photo.save() 

我可以這樣做:

Photos.objects.filter(owner_id=user_id).update(total_likes+=1) 

回答

2

可以使用F對象。

Photos.objects.filter(owner_id=user_id).update(total_likes=F('total_likes')+1) 

從Django文檔:

的F()對象表示模型字段的值。它可以引用模型字段值並使用它們執行數據庫操作,而不必將它們從數據庫中拉出到Python內存中。的F

而且好處是避免您可以用F表達式的競爭條件
docs

+0

應該想到那個。謝謝! –

+0

@HassanBaig歡迎您! :) –

+0

嘿,我剛剛看到你的個人資料。這對於Django的英語交易來說聽起來不錯:-) –

2

。見the docs

>>> Entry.objects.all().update(n_pingbacks=F('n_pingbacks') + 1)