尝试获取模型对象时出现 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 将哪个字段设置为主键。
我正在尝试设置一个 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 将哪个字段设置为主键。