![見出し画像](https://assets.st-note.com/production/uploads/images/108475433/rectangle_large_type_2_dab75712c9f7da886df6d8dd6d1986f7.jpg?width=1200)
Django_データの組み合わせが一意になるようmodelに制約を付ける #384
Djangoの機能に関する簡単なメモです。
Djangoのモデルでは、データベースのスキーマをPythonのクラスとして表現します。各モデルクラスはデータベースのテーブルを表し、属性はそのテーブルのフィールドを表します。
そしてモデルにはMetaクラスというものを定義できます。これはモデルのメタデータを指定するためのものです。例えば、テーブル名やデフォルトのソート順、パーミッションなどを指定できます。
class MyModel(models.Model):
field1 = models.CharField(max_length=100)
field2 = models.CharField(max_length=100)
class Meta:
verbose_name = 'サンプル用モデル'
db_table = 'my_sample_model'
constraints = [
models.UniqueConstraint(fields=['field1', 'field2'], name='unique_field1_field2')
]
constraintsオプションは、モデルにデータベースレベルの制約を追加するためのものです。記載しているUniqueConstraintはその一つで、指定されたフィールドの組み合わせがユニークであることを保証します。つまり、同じ値の組み合わせが二度と現れないようにできます。
UniqueConstraintには重要なパラメータが2つあります。
- fields:制約を構成するフィールド名のリストまたはタプルです。組み合わせのユニークさをチェックするフィールドを指定します。
- name:制約の名前です。この名前はデータベーススキーマ内でユニークでなければなりません。
上記のサンプルコードでは、field1とfield2の組み合わせがユニークであることを保証しています。
ここまでお読みいただきありがとございました!