我开发了一个应用程序,该应用程序具有指定的数据库和模型模式。我使用的是Django 1.8.2版本。下面是一个问题。不必要的字段被省略了,模型名称是为了示例的目的而发明的,因为我不能透露。考虑以下模型A和B。
class B (models.Model):
name = models.CharField(max_length=100)
class A (models.Model):
name = models.CharField(max_length=100, primary_key=True)
related_name = models.ForeignKey(B, null=True, blank=True)
经过很长一段时间的项目后,可能会有几个相同的名称A,但具有不同的外键B。在这种情况下,我想建模主键"A“由两个字段组成:名称和相关名称。如何在django中创建包含两个字段的键?
发布于 2015-07-09 18:03:11
您希望使用组合键。Django不支持此See here。有一些支持,但你不能有关系,所以它在实际使用中是相当有限的。
目前的Django模型只支持这个集合中的一列,拒绝了许多表的自然主键是多列的设计。Django目前不能使用这些模式;相反,它们必须引入一个冗余的单列键(“代理”键),迫使应用程序在任何给定实例中对表使用哪个键做出任意的和不必要的选择。
发布于 2015-07-09 18:04:05
Django不支持组合键。但是你可以使用unique-together
unique_together = ("name", "related_name")
https://stackoverflow.com/questions/31324971
复制相似问题