The classes defined in this module create database constraints. They are added
in the model Meta.constraints
option.
Referencing built-in constraints
Constraints are defined in django.db.models.constraints
, but for
convenience they’re imported into django.db.models
. The standard
convention is to use from django.db import models
and refer to the
constraints as models.<Foo>Constraint
.
CheckConstraint
¶UniqueConstraint
¶fields
¶UniqueConstraint.
fields
¶A list of field names that specifies the unique set of columns you want the constraint to enforce.
For example, UniqueConstraint(fields=['room', 'date'],
name='unique_booking')
ensures each room can only be booked once for each
date.
condition
¶UniqueConstraint.
condition
¶A Q
object that specifies the condition you want the constraint to
enforce.
For example, UniqueConstraint(fields=['user'], condition=Q(status='DRAFT')
ensures that each user only has one draft.
These conditions have the same database restrictions as
Index.condition
.
Jan 17, 2019