Django-Nonrel:非关系数据库不支持多表继承

时间:2012-07-07 06:40:22

标签: django django-models django-nonrel

我有一个名为MyModel的元类。

我还有2个名为NodeAuthor的常规模型类。 Author继承自MyModel,而Node则不会。 (NodeAuthor可以正常工作。)

我想更改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继承?

1 个答案:

答案 0 :(得分:5)

django-nonrel不支持多表继承。

如果 MyModel 继承自 django.db.models.Model Node 作者继承自 > MyModel ,然后你有一个多表继承(即使 MyModel 没有字段)。

您可以通过将 MyModel 设为abstract base class来避免这种情况。