我在models.py
中有2个课程:PRODUCTS
和PARTS
。
class PRODUCTS (models.Model):
productid = models.IntegerField(primary_key = True)
...
class PARTS(models.Model):
partid= models.IntegerField(primary_key = True)
productid = models.IntegerField(null = True, blank = True)
...
他们对应我的两个数据库表。
CREATE TABLE `PRODUCTS` (
`productid ` int(11) NOT NULL,
... )
CREATE TABLE `PARTS` (
`partid` int(11) NOT NULL,
`productid ` int(11) NOT NULL,
PRIMARY KEY (`partid`),
KEY `main_5cae8fa2` (`productid `),
CONSTRAINT `productid_id_6ce77021aa` FOREIGN KEY (`productid `) REFERENCES `PRODUCTS` (`productid `)
... )
在django我需要获取特定产品的部分,所以我将PARTS类更改为:
class PARTS(models.Model):
partid = models.IntegerField(primary_key = True)
productid = models.ForeignKey(PRODUCTS, related_name = 'parts')
例如,我应该能够像这样访问产品100的各个部分:
products = PRODUCTS.objects.get(100)
x = products.parts
然而,此更改会导致问题,因为django会自动将_id
添加到列名称,这意味着他现在不再寻找productid
他正在寻找productid_id
(1054,"未知列' PARTS.productid_id'在'字段列表'")
如何禁用_id
的自动添加?更改我的列名将花费数小时,有很多地方插入/删除/更新此表。