0

多くのレコードを更新する必要があるシナリオがあります。しかし問題は、変数が入力として入ってくるフィールドを更新しなければならないことです。入力フィールドに何もない場合、既存の db 値を上書きしないでください。

new_code = None
new_type = "new values"

user.objects(query).update(set__type=new_type ,set__code=new_code) 

上記のクエリは 10 件のレコードを返しますが、値を持つタイプ coz のみを更新したいと考えています。ただし、コード値はデータベースで更新しないでください。coz その変数は none (ユーザー入力フォームから来ます)

私は何らかのif else条件を作らなければなりません

データベースには type=old,code=111 のようなレコードがあります。 new_code は入力として来ないため、タイプのみを更新する必要があり、データベースは type = new values 、 code = 111 のようになります

4

1 に答える 1

0

更新する前にユーザー入力をきれいにする必要があります - None は保存する有効なデータ型と値です。

これらは単なる kwargs であるため、更新したいものの辞書を作成できます。

update = {}
if new_type:
    update['set__new_type' = new_type
if new_code:
    update['set__new_code' = new_code

user.objects(query).update(**update)
于 2012-10-17T13:30:26.867 に答える