3

我想在 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 函数的东西

4

2 回答 2

3

您是否尝试过这种方式,首先找出那些不为空的值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

两个第三方库可以帮助对 Django 模型进行重复数据删除:

Django Extensions 的merge_model_instances管理命令。

Django 超级重复数据删除器

于 2017-12-16T20:13:01.363 回答