【问题标题】:Merge two model instance in Django在 Django 中合并两个模型实例
【发布时间】:2013-08-31 13:21:22
【问题描述】:

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

【问题讨论】:

    标签: django django-models django-orm


    【解决方案1】:

    你有没有试过这种方式,先找出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()
    

    【讨论】:

    • @MaxKharandziuk 我认为dict.update 接近$.extend
    • 我只是举例说扩展功能:)
    【解决方案2】:

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

    Django Extensions 的merge_model_instances 管理命令。

    Django Super Deduper

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-01-25
      • 1970-01-01
      • 1970-01-01
      • 2021-12-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多