3

Django で 2 つのモデル インスタンスをマージしたいと考えています。たとえば、私は持っています:

person1:
    id=1
    created=(some date)
    name=None
    last_name=none

person2:
    id=None
    created=None
    name=John
    last_name=Daw

結果は次のようになります。

result:
    id=1
    created=(some date)
    name=John
    last_name=Daw

今は __dict__ プロパティで反復処理を行っていますが、誰かがより良い方法を知っているかもしれません。jQuery.extend 関数のようなものを探します

4

2 に答える 2

3

この方法を試してみましたか? まず、 で null ではない値を見つけてperson2ください:

person2_dict = {k: v for k, v in person2.__dict__.iteritems() if v is not None}

それらをターゲットにマージしますperson1:

person1.__dict__.update(person2_dict)
person1.save()
于 2013-08-31T14:00:53.243 に答える
3

2 つのサードパーティ ライブラリが Django モデルの重複排除に役立ちます。

Django 拡張機能のmerge_model_instances管理コマンド。

Django Super Deduper

于 2017-12-16T20:13:01.363 に答える