如何将两个字段定义为“独特”的情侣

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

我有一个卷子(杂志)的表格,我不希望同一个杂志的卷号更多。

class Volume(models.Model): id = models.AutoField(primary_key=True) journal_id = models.ForeignKey(Journals, db_column='jid', null=True, verbose_name = "Journal") volume_number = models.CharField('Volume Number', max_length=100) comments = models.TextField('Comments', max_length=4000, blank=True) 

我试图把unique = True作为属性在journal_idvolume_number字段,但它不起作用。

你有一个简单的解决scheme叫做unique_together ,它正是你想要的。

例如:

 class MyModel(models.Model): field1 = models.CharField(max_length=50) field2 = models.CharField(max_length=50) class Meta: unique_together = ('field1', 'field2',) 

在你的情况下:

 class Volume(models.Model): id = models.AutoField(primary_key=True) journal_id = models.ForeignKey(Journals, db_column='jid', null=True, verbose_name = "Journal") volume_number = models.CharField('Volume Number', max_length=100) comments = models.TextField('Comments', max_length=4000, blank=True) class Meta: unique_together = ('journal_id', 'volume_number',)