Django 错误:“‘字段列表’中的未知列‘categorytree.id’”

r00*_*0fl 1 django django-models

通过 Django shell 运行以下命令时:

from myApp.models import *
print Categorytree.objects.all()
Run Code Online (Sandbox Code Playgroud)

我收到此错误消息:

OperationalError: (1054, “'field list' 中的未知列 'categorytree.id'”)

这是我的模型的样子:

class Categorytree(models.Model):
    level = models.IntegerField(db_column='Level')  # Field name made lowercase.
    categorynode_idcategorynode = models.ForeignKey(Categorynode, models.DO_NOTHING, db_column='CategoryNode_idCategoryNode')  # Field name made lowercase.
    categorynode_idancestorcategorynode = models.ForeignKey(Categorynode, models.DO_NOTHING, db_column='CategoryNode_idAncestorCategoryNode', related_name='+')  # Field name made lowercase.

    class Meta:
        managed = False
        db_table = 'categorytree'
        unique_together = (('categorynode_idcategorynode', 'categorynode_idancestorcategorynode'),)
Run Code Online (Sandbox Code Playgroud)

请注意,它没有主键,也不应该有,但 Django 似乎认为会有一个主键 .id 字段。

Наз*_*кий 5

引用Django 文档

每个模型只需要一个字段来具有primary_key=True(显式声明或自动添加)。

如果您需要访问没有主键的表,则需要使用其他工具,例如SQLAlchemy