【发布时间】:2016-11-29 10:05:33
【问题描述】:
通过 Django shell 运行以下命令时:
from myApp.models import *
print Categorytree.objects.all()
我收到此错误消息:
OperationalError: (1054, "未知列 'categorytree.id' in 'field 列表'")
这是我的模型的样子:
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'),)
请注意,它没有主键,也不应该有,但 Django 似乎认为会有一个主键 .id 字段。
【问题讨论】:
-
你必须有一个主键。
-
在相应的 MySQL 数据库设计中,该表不应该有主键。那么在models.py中加一个是否正确呢?
标签: django django-models