見出し画像

Django 複数フィールドにユニーク制約(複合ユニーク)をつける方法

ここでは二つの方法を紹介します。二つ紹介する理由としては、片方はいままで主流だったけども、これから使えなくなる可能性があるためです。

以下のようにclass Metaの中に書き込みます。

class Meta:
       constraints = [
           models.UniqueConstraint(
               fields=["teacher", "student", "date"],
               name="lesson_unique"
           ),
       ]
       

複数のペアを作る場合は、constraintsがリストになっているので、どんどん追加していけばオッケーです。

ユニーク制約をつけたい時、これまではunique_togetherという書き方を利用するのが一般的だったと思いますが、この書き方は将来使えなくなる可能性があるとのことです。

class Meta:
       unique_together = (('askFrom', 'askTo'), )

この記事が気に入ったらサポートをしてみませんか?