Django公司模型.ForeignKey行为

2024-10-02 06:27:08 发布

您现在位置:Python中文网/ 问答频道 /正文

我在models.py中有两个类:PRODUCTS和{}。在

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)
    ...

它们与我的两个DB表对应。在

^{pr2}$

在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, "Unknown column 'PARTS.productid_id' in 'field list'")

如何禁用_id的自动添加?更改我的列名将花费数小时-有太多的位置可以插入/删除/更新此表。在


Tags: djangokeyidtruemodel产品modelsclass
1条回答
网友
1楼 · 发布于 2024-10-02 06:27:08

可以使用db_column设置为模型字段手动指定列名。在

class PARTS(models.Model):
    partid = models.IntegerField(primary_key = True)
    productid = models.ForeignKey(PRODUCTS, related_name = 'parts', db_column='productid')

相关问题 更多 >

    热门问题