我创建了几个模型并通过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列不代表主键吗?