我正尝试建立一个Web应用程序,使用Dajngo修改现有的MySQL数据库,下面的表格模型是通过Django inspectdb生成的:
class BaseCase(models.Model):
base_case_name = models.TextField(blank=True, null=True)
version = models.TextField(blank=True, null=True)
default = models.TextField(blank=True, null=True) # This field type is a guess.
class Meta:
managed = False
db_table = 'base_case'
这是数据库中base_case表的SQL:
CREATE TABLE `base_case` (
`base_case_name` tinytext,
`version` tinytext,
`default` bit(1) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
问题是,当我尝试通过Django ORM获取对象时,我不断收到此错误
django.db.utils.OperationalError: (1054, "Unknown column 'base_case.id' in 'field list'")
答案 0 :(得分:1)
$ python manage.py makemigrations
$ python manage.py migrate
运行以下命令,以将更改应用到数据库。
答案 1 :(得分:0)
我通过在 BaseCase表中定义主键解决了该问题,Django尝试将主键列与自己在其中生成的ID(base_case.id)相匹配字段列表。
答案 2 :(得分:0)
class Images(models.Model):
name = models.CharField(max_length=100)
id = models.CharField(max_length=100, primary_key=True)
image = models.FileField()
def __str__(self):
return self.name
Set primary_key = True要将哪个字段设置为主键。