django models.ForeignKey行为

时间:2015-09-08 08:08:38

标签: python mysql django

我在models.py中有2个课程:PRODUCTSPARTS

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的自动添加?更改我的列名将花费数小时,有很多地方插入/删除/更新此表。

0 个答案:

没有答案