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

标签 django django-models django-nonrel

我有一个名为 MyModel 的元类。

我还有 2 个常规模型类,名为 NodeAuthorAuthor 继承自 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

最佳答案

django-nonrel 不支持多表继承。

如果MyModel继承自django.db.models.Model,并且NodeAuthor继承自>MyModel,那么你就有了多表继承(即使MyModel没有字段)。

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

关于Django-Nonrel:非关系型数据库不支持多表继承,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11372877/

相关文章:

python - 使用python在django中将任何格式(flv、3gp、MXF等)的视频转换为MP4

django - Django 模型自动字段的初始值

python - Django django.contrib.sites 迁移到哪里?

django - 在 Google App Engine 上运行基于 Django 1.4 的应用程序

python - Django TestCase 不保存我的模型

python - Django:未找到字段?

python - Django Admin - 批量编辑数据?

python - django-nonrel syncdb 和 mongodb : pymongo. 错误。OperationFailure

python - 在 Mac 10.6 上为 GAE/Django-nonrel 安装 Python 2.5(我是一个新的 Mac 用户)

Django:即使通过相关模型过滤也返回所有值