diff options
| author | Rust Saiargaliev <rustem.saiargaliev@thermondo.de> | 2021-05-10 22:19:29 +0200 |
|---|---|---|
| committer | Mariusz Felisiak <felisiak.mariusz@gmail.com> | 2021-05-18 13:02:33 +0200 |
| commit | a24fed399ced6be2e9dce4cf28db00c3ee21a21c (patch) | |
| tree | 92559f7d8f80e97840c491f99ed032a30d6a0ddb | |
| parent | f07723aa0a094d55cc47417492046d613c6ab349 (diff) | |
Fixed #32733 -- Skipped system check for specifying type of auto-created primary keys on abstract models.
Regression in b5e12d490af3debca8c55ab3c1698189fdedbbdb.
| -rw-r--r-- | django/db/models/base.py | 1 | ||||
| -rw-r--r-- | docs/releases/3.2.4.txt | 3 | ||||
| -rw-r--r-- | tests/check_framework/test_model_checks.py | 8 |
3 files changed, 12 insertions, 0 deletions
diff --git a/django/db/models/base.py b/django/db/models/base.py index cd5268bed1..0f8af9f920 100644 --- a/django/db/models/base.py +++ b/django/db/models/base.py @@ -1302,6 +1302,7 @@ class Model(metaclass=ModelBase): @classmethod def _check_default_pk(cls): if ( + not cls._meta.abstract and cls._meta.pk.auto_created and # Inherited PKs are checked in parents models. not ( diff --git a/docs/releases/3.2.4.txt b/docs/releases/3.2.4.txt index 51a4898163..068798e6ed 100644 --- a/docs/releases/3.2.4.txt +++ b/docs/releases/3.2.4.txt @@ -12,3 +12,6 @@ Bugfixes * Fixed a bug in Django 3.2 where a final catch-all view in the admin didn't respect the server-provided value of ``SCRIPT_NAME`` when redirecting unauthenticated users to the login page (:ticket:`32754`). + +* Fixed a bug in Django 3.2 where a system check would crash on an abstract + model (:ticket:`32733`). diff --git a/tests/check_framework/test_model_checks.py b/tests/check_framework/test_model_checks.py index cf0aca404f..5c62ace7e4 100644 --- a/tests/check_framework/test_model_checks.py +++ b/tests/check_framework/test_model_checks.py @@ -403,6 +403,14 @@ class ModelDefaultAutoFieldTests(SimpleTestCase): self.assertEqual(checks.run_checks(app_configs=self.apps.get_app_configs()), []) + def test_skipped_on_abstract_model(self): + class Abstract(models.Model): + class Meta: + abstract = True + + # Call .check() because abstract models are not registered. + self.assertEqual(Abstract.check(), []) + def test_explicit_inherited_parent_link(self): class Parent(models.Model): id = models.AutoField(primary_key=True) |
