2016-08-02 7 views
-2

私は、名前がステータスである1つの列があるテーブル「サブスクライバ」を持っています。djangoデータベースの列の特定の値を他の値に置き換える方法は?

は、I = 1と言い換える4と3の変化、それはすべて「1および3」の状態は、私が解決するために何をすべき4.

に変換column.Where状態「状態」の値を交換したいですこの問題。

+0

* Try *はすでにドキュメントに詳しく載っていますが、あなたのお気に入りの検索エンジンですでに利用可能なリンクがたくさんあります。 [ask] – Sayse

答えて

2

は、私は複雑なクエリのため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」エドです。 より複雑なクエリ(たとえば、 ORステートメントを使用したクエリ)を実行する必要がある場合は、Qオブジェクトを使用できます。

ここアップデートのドキュメントを読む:e4c5のソリューション@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)より前に保存する必要があります。保存はこのステップを実行するかしないか? –

+0

移行が必要かどうか –

関連する問題