Django:不推荐使用`MergeDict`,而是使用`dict.update()`

时间:2016-03-01 08:09:43

标签: python django dictionary merge

我收到此消息:

RemovedInDjango19Warning: MergeDict is deprecated, use dict.update() instead.

当前代码:

return MergeDict(dict_a, dict_b)

这不是解决方案,因为dict_a被修改:

return dict_a.update(dict_b) #1

此外dict_a是自定义类的一个实例,它不支持复制(它是懒惰的并且根据键动态创建项目),所以我不能简单地这样做:

new=dict()
new.update(dict_a)
new.update(dict_b)
return new

如何替换MergeDict

1 个答案:

答案 0 :(得分:3)

您可以使用collections.ChainMap。它与MergeDict的作用相同:保留映射列表并按顺序访问它们。

然而,实际上执行字典的合并通常更简单。将复制支持添加到您的自定义类并且只是更新它可能是不可能的。