Constraints referenceLink para este cabeçalho

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

CheckConstraintLink para este cabeçalho

class CheckConstraint(*, check, name)Link para esta definição

Creates a check constraint in the database.

checkLink para este cabeçalho

CheckConstraint.checkLink para esta definição

A Q object or boolean Expression 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 para este cabeçalho

CheckConstraint.nameLink para esta definição

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

UniqueConstraintLink para este cabeçalho

class UniqueConstraint(*, fields, name, condition=None, deferrable=None)Link para esta definição

Creates a unique constraint in the database.

fieldsLink para este cabeçalho

UniqueConstraint.fieldsLink para esta definição

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 para este cabeçalho

UniqueConstraint.nameLink para esta definição

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

conditionLink para este cabeçalho

UniqueConstraint.conditionLink para esta definição

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

Por exemplo:

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.

deferrableLink para este cabeçalho

UniqueConstraint.deferrableLink para esta definição

Set this parameter to create a deferrable unique constraint. Accepted values are Deferrable.DEFERRED or Deferrable.IMMEDIATE. For example:

Code
from django.db.models import Deferrable, UniqueConstraint

UniqueConstraint(
    name='unique_order',
    fields=['order'],
    deferrable=Deferrable.DEFERRED,
)

By default constraints are not deferred. A deferred constraint will not be enforced until the end of the transaction. An immediate constraint will be enforced immediately after every command.