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

Django unknown column error when trying to get a model objects

我正在尝试设置一个 Web 应用程序来使用 Dajngo 修改现有的 MySQL 数据库,下面我的 table 的模型是通过 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 table 的 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'")
$ python manage.py makemigrations

$ python manage.py migrate

运行 为了将更改应用到数据库,请执行以下命令。

我通过在BaseCaseTable定义一个主键解决了这个问题,Django尝试匹配主键字段列表中其自己生成的 ID (base_case.id) 的列。

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