2013-08-31 58 views
1

我想在Django中合併兩個模型實例。 比如我有:在Django中合併兩個模型實例

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功能

回答

2

您是否嘗試過這種方式,先找出不爲空的值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() 
+0

是的,但你的解決方案是符合短則感謝:) – kharandziuk

+0

@MaxKharandziuk我想'dict.update'接近'$ .extend'。 – iMom0

+0

我說的關於擴展函數只是例如:) – kharandziuk