2つのフィールドをカップルとして「ユニーク」に定義する方法 質問する

2つのフィールドをカップルとして「ユニーク」に定義する方法 質問する

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機能しません。

ベストアンサー1

あなたには簡単な解決策がありますユニーク_一緒にまさにあなたが望むことを実現します。

例えば:

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',)

おすすめ記事