2016-08-02 69 views
-2

我有一個表「訂戶」,其中一列的名稱是狀態。如何用django數據庫列中的其他值替換特定值?

我要替換的「狀態」 column.Where狀態值= 1和3與4換句話說改變這一切「1,3」狀態轉換成4

我應該做些什麼來解決這個問題。

+0

*嘗試*,它的東西涵蓋了許多細節已在文檔中,有大量有用的鏈接已在您最喜愛的搜索引擎上可用。 [ask] – Sayse

回答

2

@ e4c5的解決方案是非常好的,雖然我儘量保留對於複雜的查詢Q對象,在這種情況下,我可能只是去與__in過濾器:Subscriber.objects.filter(status__in=[1, 3]).update(status=4)

+0

傻我你是對的+1 – e4c5

+0

謝謝zsepi ... –

2

使用Q object可獲得OR的條件。它的其餘部分是一個簡單的通話更新

Subscriber.objects.filter(Q(status=1)|Q(status=3)).update(status=4) 

關鍵字參數的查詢 - 過濾器(),等等 - 是「AND」編在一起。 如果您需要執行更復雜的查詢(例如,使用 或語句的查詢),則可以使用Q對象。

閱讀更新這裏的文檔:https://docs.djangoproject.com/en/1.9/ref/models/querysets/#update

+0

#e4c5它也會直接命中數據庫,或者我應該將它保存在 –

+0

A = Subscriber.objects.filter(Q(status = 1)| Q(status = 3))。update(status = 4)A.保存應該做這一步或不? –

+0

遷移是否需要? –

相關問題