Fixed #23615 -- Validate that a Model instance's "check" attribute is a method.

The "check" name is a reserved word used by Django's check framework,
and cannot be redefined as something else other than a method, or the check
framework will raise an error.

This change amends the django.core.checks.model_check.check_all_models()
function, so that it verifies that a model instance's attribute "check"
is actually a method. This new check is assigned the id "models.E020".
This commit is contained in:
Rigel Di Scala 2014-10-14 14:10:27 +01:00 committed by Loic Bistuer
parent 157f9cf240
commit a5c77417a6
4 changed files with 83 additions and 10 deletions

View file

@ -64,6 +64,7 @@ Models
* **models.E019**: Autogenerated column name too long for M2M field
``<M2M field>``. Maximum length is ``<maximum length>`` for database
``<alias>``.
* **models.E020**: The ``<model>.check()`` class method is currently overridden.
Fields
~~~~~~
@ -94,7 +95,6 @@ Fields
are mutually exclusive. Only one of these options may be present.
* **fields.W161**: Fixed default value provided.
File Fields
~~~~~~~~~~~

View file

@ -120,3 +120,6 @@ Bugfixes
* Fixed a crash while parsing cookies containing invalid content
(:ticket:`23638`).
* The system check framework now raises error **models.E020** when the
class method ``Model.check()`` is unreachable (:ticket:`23615`).