Référence des contraintesLien vers cette rubrique
Les classes définies dans ce module créent des contraintes de base de données. Elles sont ajoutées dans l’option Meta.constraints des modèles.
CheckConstraintLien vers cette rubrique
- class CheckConstraint(*, check, name)Lien vers cette définition
Crée une contrainte de vérification dans la base de données.
checkLien vers cette rubrique
- CheckConstraint.checkLien vers cette définition
Un objet Q ou une Expression booléenne qui indique le contrôle que la contrainte souhaitée doit appliquer.
Par exemple, CheckConstraint(check=Q(age__gte=18), name='age_gte_18') s’assure que le champ age n’est jamais au-dessous de 18.
nameLien vers cette rubrique
- CheckConstraint.nameLien vers cette définition
Le nom de la contrainte. La contrainte doit toujours posséder un nom unique.
UniqueConstraintLien vers cette rubrique
- class UniqueConstraint(*, fields, name, condition=None, deferrable=None)Lien vers cette définition
Crée une contrainte d’unicité dans la base de données.
fieldsLien vers cette rubrique
- UniqueConstraint.fieldsLien vers cette définition
Une liste de noms de champs qui précise l’ensemble unique de colonnes pour lesquelles la contrainte va assurer l’unicité.
Par exemple, UniqueConstraint(fields=['chambre', 'date'], name='reservation_unique') s’assure que chaque chambre ne peut être réservée qu’une seule fois par date.
nameLien vers cette rubrique
- UniqueConstraint.nameLien vers cette définition
Le nom de la contrainte. La contrainte doit toujours posséder un nom unique.
conditionLien vers cette rubrique
- UniqueConstraint.conditionLien vers cette définition
Un objet Q qui indique la condition que la contrainte souhaitée doit appliquer.
Par exemple :
UniqueConstraint(fields=['user'], condition=Q(status='DRAFT'), name='unique_draft_user')
s’assure que chaque utilisateur dispose d’un seul brouillon.
Ces conditions sont soumises aux même restrictions de base de données que Index.condition.
deferrableLien vers cette rubrique
- UniqueConstraint.deferrableLien vers cette définition
Définissez ce paramètre pour créer une contrainte d’unicité différable. Les valeurs acceptées sont Deferrable.DEFERRED ou Deferrable.IMMEDIATE. Par exemple
from django.db.models import Deferrable, UniqueConstraint
UniqueConstraint(
name='unique_order',
fields=['order'],
deferrable=Deferrable.DEFERRED,
)
Par défaut, les contraintes ne sont pas différées. Une contrainte différée ne sera pas appliquée avant la fin de la transaction. Une contrainte immédiate sera appliquée immédiatement après chaque commande.