我有一个名为 MyModel
的元类。
我还有 2 个常规模型类,名为 Node
和 Author
。 Author
继承自 MyModel
,而 Node
则不然。 (Node
和 Author
按预期正常工作。)
我想更改Node
,以便它也继承自MyModel
。当我尝试更改 Node
以便它也继承自 MyModel
时,出现以下错误:
raise DatabaseError("Multi-table inheritance is not "
TemplateSyntaxError: Caught DatabaseError while rendering: Multi-table inheritance is not supported by non-relational DBs.
我从数据库中删除了所有 Node
对象,但仍然收到错误。实际上,我想删除 Node 并重新实现它。如何让数据库识别 Node
应该继承自 MyModel
?
最佳答案
django-nonrel 不支持多表继承。
如果MyModel继承自django.db.models.Model,并且Node和Author继承自>MyModel,那么你就有了多表继承(即使MyModel没有字段)。
您可以通过将MyModel设置为 abstract base class 来避免这种情况.
关于Django-Nonrel:非关系型数据库不支持多表继承,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11372877/