|
@@ -130,18 +130,18 @@ The code below is equivalent to the code above::
|
|
|
|
|
|
.. _field-checking:
|
|
|
|
|
|
-Field, model, manager, template engine, and database checks
|
|
|
------------------------------------------------------------
|
|
|
+Field, constraint, model, manager, template engine, and database checks
|
|
|
+-----------------------------------------------------------------------
|
|
|
|
|
|
In some cases, you won't need to register your check function -- you can
|
|
|
piggyback on an existing registration.
|
|
|
|
|
|
-Fields, models, model managers, template engines, and database backends all
|
|
|
-implement a ``check()`` method that is already registered with the check
|
|
|
-framework. If you want to add extra checks, you can extend the implementation
|
|
|
-on the base class, perform any extra checks you need, and append any messages
|
|
|
-to those generated by the base class. It's recommended that you delegate each
|
|
|
-check to separate methods.
|
|
|
+Fields, constraints, models, model managers, template engines, and database
|
|
|
+backends all implement a ``check()`` method that is already registered with the
|
|
|
+check framework. If you want to add extra checks, you can extend the
|
|
|
+implementation on the base class, perform any extra checks you need, and append
|
|
|
+any messages to those generated by the base class. It's recommended that you
|
|
|
+delegate each check to separate methods.
|
|
|
|
|
|
Consider an example where you are implementing a custom field named
|
|
|
``RangedIntegerField``. This field adds ``min`` and ``max`` arguments to the
|
|
@@ -195,6 +195,10 @@ the only difference is that the check is a classmethod, not an instance method::
|
|
|
# ... your own checks ...
|
|
|
return errors
|
|
|
|
|
|
+.. versionchanged:: 6.0
|
|
|
+
|
|
|
+ In older versions, constraints didn't implement a ``check()`` method.
|
|
|
+
|
|
|
Writing tests
|
|
|
-------------
|
|
|
|