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

有没有一种方法可以将几个字段定义为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 = Trueas属性放在字段中journal_id,volume_number但是它不起作用。

回答:

有一个简单的解决方案称为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',)

以上是 如何将两个“唯一”字段定义为一对 的全部内容, 来源链接: utcz.com/qa/414975.html

回到顶部