gpt4 book ai didi

python - 双重继承导致元类冲突

转载 作者:太空狗 更新时间:2023-10-29 21:40:37 25 4
gpt4 key购买 nike

我使用两个 django 包 - django-mptt(用于实现修改后的预序树遍历的实用程序)和 django-hvad(模型翻译)。

我有一个模型类 MenuItem,我希望它扩展 TranslatableModel 和 MPTTModel,如下所示:

class MenuItem(TranslatableModel, MPTTModel):

但它会导致元类冲突:

(TypeError: Error when calling the metaclass bases 
metaclass conflict: the metaclass of a derived class
must be a (non-strict) subclass of the metaclasses of all its bases)

这个问题的解决方案是什么?我希望我可以使用双重继承。

最佳答案

您可能想要执行以下操作:

class CombinedMeta(TranslatableModel.__metaclass__, MPTTModel.__metaclass__):
pass
class MenuItem(TranslatableModel, MPTTModel):
__metaclass__=CombinedMeta

这应该可以准确地满足您的需求,不会出现任何错误消息。

关于python - 双重继承导致元类冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11254553/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com