Constraints referenceLink to this heading

The classes defined in this module create database constraints. They are added in the model Meta.constraints option.

CheckConstraintLink to this heading

class CheckConstraint(*, check, name)Link to this definition

Creates a check constraint in the database.

checkLink to this heading

CheckConstraint.checkLink to this definition

A Q object that specifies the check you want the constraint to enforce.

For example, CheckConstraint(check=Q(age__gte=18), name='age_gte_18') ensures the age field is never less than 18.

nameLink to this heading

CheckConstraint.nameLink to this definition

The name of the constraint. You must always specify a unique name for the constraint.

UniqueConstraintLink to this heading

class UniqueConstraint(*, fields, name, condition=None)Link to this definition

Creates a unique constraint in the database.

fieldsLink to this heading

UniqueConstraint.fieldsLink to this definition

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.

nameLink to this heading

UniqueConstraint.nameLink to this definition

The name of the constraint. You must always specify a unique name for the constraint.

conditionLink to this heading

UniqueConstraint.conditionLink to this definition

A Q object that specifies the condition you want the constraint to enforce.

例:

Code
UniqueConstraint(fields=['user'], condition=Q(status='DRAFT'), name='unique_draft_user')

ensures that each user only has one draft.

These conditions have the same database restrictions as Index.condition.