Dav*_*lva 7 python django database-design
我使用两个django包 - django-mptt(用于实现Modified Preorder Tree Traversal的实用程序)和django-hvad(模型转换).
我有一个模型类MenuItem,我想扩展TranslatableModel和MPTTModel,如下所示:
class MenuItem(TranslatableModel, MPTTModel):
Run Code Online (Sandbox Code Playgroud)
但它会导致元类冲突:
(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)
Run Code Online (Sandbox Code Playgroud)
解决这个问题的方法是什么?我希望我可以使用双继承.
您可能想要执行以下操作:
class CombinedMeta(TranslatableModel.__metaclass__, MPTTModel.__metaclass__):
pass
class MenuItem(TranslatableModel, MPTTModel):
__metaclass__=CombinedMeta
Run Code Online (Sandbox Code Playgroud)
这应该给你你想要的,没有任何错误消息.
| 归档时间: |
|
| 查看次数: |
2259 次 |
| 最近记录: |