2018-08-06 04:30:44 +02:00
|
|
|
=====================
|
|
|
|
Constraints reference
|
|
|
|
=====================
|
2016-11-05 14:12:12 +01:00
|
|
|
|
|
|
|
.. module:: django.db.models.constraints
|
|
|
|
|
|
|
|
.. currentmodule:: django.db.models
|
|
|
|
|
|
|
|
.. versionadded:: 2.2
|
|
|
|
|
2018-08-06 04:30:44 +02:00
|
|
|
The classes defined in this module create database constraints. They are added
|
|
|
|
in the model :attr:`Meta.constraints <django.db.models.Options.constraints>`
|
|
|
|
option.
|
2016-11-05 14:12:12 +01:00
|
|
|
|
|
|
|
.. admonition:: Referencing built-in constraints
|
|
|
|
|
|
|
|
Constraints are defined in ``django.db.models.constraints``, but for
|
|
|
|
convenience they're imported into :mod:`django.db.models`. The standard
|
|
|
|
convention is to use ``from django.db import models`` and refer to the
|
2018-08-06 04:30:44 +02:00
|
|
|
constraints as ``models.<Foo>Constraint``.
|
2016-11-05 14:12:12 +01:00
|
|
|
|
2018-08-06 04:30:44 +02:00
|
|
|
``CheckConstraint``
|
|
|
|
===================
|
2016-11-05 14:12:12 +01:00
|
|
|
|
2018-08-06 04:15:10 +02:00
|
|
|
.. class:: CheckConstraint(*, check, name)
|
2016-11-05 14:12:12 +01:00
|
|
|
|
|
|
|
Creates a check constraint in the database.
|
|
|
|
|
2018-08-06 04:15:10 +02:00
|
|
|
``check``
|
|
|
|
---------
|
2016-11-05 14:12:12 +01:00
|
|
|
|
2018-08-06 04:15:10 +02:00
|
|
|
.. attribute:: CheckConstraint.check
|
2016-11-05 14:12:12 +01:00
|
|
|
|
2018-08-06 04:15:10 +02:00
|
|
|
A :class:`Q` object that specifies the check you want the constraint to
|
2016-11-05 14:12:12 +01:00
|
|
|
enforce.
|
|
|
|
|
2018-08-06 04:15:10 +02:00
|
|
|
For example ``CheckConstraint(check=Q(age__gte=18), name='age_gte_18')``
|
|
|
|
ensures the age field is never less than 18.
|
2016-11-05 14:12:12 +01:00
|
|
|
|
|
|
|
``name``
|
|
|
|
--------
|
|
|
|
|
|
|
|
.. attribute:: CheckConstraint.name
|
|
|
|
|
|
|
|
The name of the constraint.
|