summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRust Saiargaliev <rustem.saiargaliev@thermondo.de>2021-05-10 22:19:29 +0200
committerMariusz Felisiak <felisiak.mariusz@gmail.com>2021-05-18 13:02:33 +0200
commita24fed399ced6be2e9dce4cf28db00c3ee21a21c (patch)
tree92559f7d8f80e97840c491f99ed032a30d6a0ddb
parentf07723aa0a094d55cc47417492046d613c6ab349 (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.py1
-rw-r--r--docs/releases/3.2.4.txt3
-rw-r--r--tests/check_framework/test_model_checks.py8
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)