我创建了几个模型并通过csv批量上传填充它们 . 现在我想使用 request.GET.get("item") 并使用项目的结果ID .

但我意识到(在postgres表中检查)模型使用的是相同的ID,它们被设置为主键,并由django自动设置 .

因此,现在如果 request.GET.get("item") 返回ID为2,则此ID引用多个模型实例,并且不是特定对象的唯一标识符 .

我的问题是:

如何将我的对象设置为上传,唯一并通过ID相应地查询它们? /将当前ID更改为唯一ID?

EDIT

Postgres表1:

id |整数| not null default nextval('appname_tablename_id_seq':: regclass)引用者:表“otherapp_cartitem”CONSTRAINT“otherapp_cartitem_gas_item_id_fda21436_fk_appname_tablename_id”FOREIGN KEY(gas_item_id)REFERENCES appname_tablename(id)DEINDRABLE INITIALLY DEFERRED

id |第1栏|


1 |制造商

2 |典型的b

Postgres表2:

id |整数| not null default nextval('appname_tablename2_id_seq':: regclass)索引:“appname_tablename2_pkey”PRIMARY KEY,btree(id)

引用者:表“otherapp_cartitem”CONSTRAINT“a8ac384c4b19c16387e7656d0c2b5542”FOREIGN KEY(direct_item_id)REFERENCES appname_tablename2(id)DEINDRABLE INITIALLY DEFERRED

id |第1栏|


1 |制造商c

2 |典型的

3 |命名一个

据我所知,相应的型号没有任何特殊之处(下面简化版):

class tablename(models.Model):
      manufacturer = models.CharField(max_length=200, blank=True, null=True, )
      typ = models.CharField(max_length=200, blank=True, null=True, )

class tablename2(models.Model):
      manufacturer = models.CharField(max_length=200, blank=True, null=True, )
      typ = models.CharField(max_length=200, blank=True, null=True, )
      name = models.CharField(max_length=200, blank=True, null=True, )

我没有创建ID列 . 这是由django生成的,我认为django会自动为每个项目创建一个PK . 我错了,ID列不代表主键吗?