Django中定义唯一的字段对?

问题:

有没有办法在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中,但不起作用。

回答:

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

 
 翻译整理: codewenda.com
英文原文:How to define two fields “unique” as couple

发表评论

电子邮件地址不会被公开。 必填项已用*标注

5 + 5 =