尝试获取模型对象时,Django未知列错误

时间:2019-10-17 11:00:26

标签: django python-3.x django-models django-orm inspectdb

我正尝试建立一个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'")

3 个答案:

答案 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要将哪个字段设置为主键。