我使用两个 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
这应该会给你你想要的,没有任何错误消息。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)