我有一个具有复合主键的旧数据库表。我认为我无法更改结构以包含代理键,因为编写了一些使用该表的代码。在 django 中,我无法使用该表,因为它没有主键(非复合)。
django 模型支持复合主键吗?如果没有,是否有在不改变表结构的情况下的解决方法?
附:我正在使用 postgresql。
尝试下面类似的代码:
class MyTable(models.Model):
class Meta:
unique_together = (('key1', 'key2'),)
key1 = models.IntegerField(primary_key=True)
key2 = models.IntegerField()
或者如果您只想要唯一的混合字段:
class MyTable(models.Model):
class Meta:
unique_together = (('key1', 'key2'),)
key1 = models.IntegerField()
key2 = models.IntegerField()
编辑:我想指出,如果有 3 列,这种方法就会出现问题。更新查询不起作用,因为它尝试更新(将 pk 字段放在“SET”之后)唯一的字段,并且显然失败了。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)