如何将两个字段“唯一”定义为耦合

在Django中,有没有办法将几个字段定义为唯一的

我有一个卷(期刊)表,我不希望同一个期刊有超过一个卷号

课程卷(models.Model):
id=models.AutoField(主键=True)
journal\u id=models.ForeignKey(Journals,db\u column='jid',null=True,verbose\u name=“journal”)
卷号=models.CharField('卷号',最大长度=100)
comments=models.TextField('comments',max_length=4000,blank=True)

我试图将unique=True作为属性放在字段journal\u idvolume\u number中,但它不起作用

有一个简单的解决方案,称为unique_together,它完全满足您的需求

例如:

类MyModel(models.Model):
field1=models.CharField(最大长度=50)
field2=models.CharField(最大长度=50)
类元:
共同唯一=('field1','field2',)

在您的情况下:

课程卷(models.Model):
id=models.AutoField(主键=True)
journal\u id=models.ForeignKey(Journals,db\u column='jid',null=True,verbose\u name=“journal”)
卷号=models.CharField('卷号',最大长度=100)
comments=models.TextField('comments',max_length=4000,blank=True)
类元:
一起唯一=('journal\u id','volume\u number',)

发表评论