使用Django的复合/复合主/唯一键

Vie*_*iet 18 database django many-to-many django-models compound-key

如何使用Django使用复合(复合)主/唯一键创建模型(以及表格)?

Ign*_*ams 34

Django不支持复合主键.您可以使用创建单个复合唯一键Meta.unique_together.

  • 我*真的*很好奇你认为复合唯一键和多对多关系之间的联系是什么...... (2认同)

M.j*_*vid 6

如果您只想使用唯一的混合字段,请使用以下代码:

class MyTable(models.Model):
    class Meta:
        unique_together = (('key1', 'key2'),)

    key1 = models.IntegerField()
    key2 = models.IntegerField()
Run Code Online (Sandbox Code Playgroud)

但是如果你想要唯一的并且其中一列是主要的,请设置primary模型列的参数,类似下面的代码:

class MyTable(models.Model):
    class Meta:
        unique_together = (('key1', 'key2'),)

    key1 = models.IntegerField(primary_key=True)
    key2 = models.IntegerField()
Run Code Online (Sandbox Code Playgroud)