From 66f30dbf253f89a3803aebbcee2675ce3e186b00 Mon Sep 17 00:00:00 2001 From: Mariusz Felisiak Date: Wed, 20 Jul 2022 07:35:10 +0200 Subject: [PATCH] Refs #27236 -- Reverted "Refs #27236 -- Refactored out DeprecationForHistoricalMigrationMixin." This reverts commit 57793b47657ace966ce8ce96d801ac0d85e5efc6. --- django/db/models/fields/__init__.py | 35 +++++++++++++++++++++++--- django/utils/deprecation.py | 39 ----------------------------- 2 files changed, 31 insertions(+), 43 deletions(-) diff --git a/django/db/models/fields/__init__.py b/django/db/models/fields/__init__.py index 3757860f20f..5381a3b17fd 100644 --- a/django/db/models/fields/__init__.py +++ b/django/db/models/fields/__init__.py @@ -24,7 +24,6 @@ from django.utils.dateparse import ( parse_duration, parse_time, ) -from django.utils.deprecation import DeprecationForHistoricalMigrationMixin from django.utils.duration import duration_microseconds, duration_string from django.utils.functional import Promise, cached_property from django.utils.ipv6 import clean_ipv6_address @@ -112,7 +111,7 @@ def return_None(): @total_ordering -class Field(DeprecationForHistoricalMigrationMixin, RegisterLookupMixin): +class Field(RegisterLookupMixin): """Base class for all field types""" # Designates whether empty strings fundamentally are allowed at the @@ -138,7 +137,8 @@ class Field(DeprecationForHistoricalMigrationMixin, RegisterLookupMixin): "%(date_field_label)s %(lookup_type)s." ), } - check_type = "fields" + system_check_deprecated_details = None + system_check_removed_details = None # Attributes that don't affect a column definition. # These attributes are ignored when altering the field. @@ -263,7 +263,7 @@ class Field(DeprecationForHistoricalMigrationMixin, RegisterLookupMixin): *self._check_null_allowed_for_primary_keys(), *self._check_backend_specific_checks(**kwargs), *self._check_validators(), - *self.check_deprecation_details(), + *self._check_deprecation_details(), ] def _check_field_name(self): @@ -441,6 +441,33 @@ class Field(DeprecationForHistoricalMigrationMixin, RegisterLookupMixin): ) return errors + def _check_deprecation_details(self): + if self.system_check_removed_details is not None: + return [ + checks.Error( + self.system_check_removed_details.get( + "msg", + "%s has been removed except for support in historical " + "migrations." % self.__class__.__name__, + ), + hint=self.system_check_removed_details.get("hint"), + obj=self, + id=self.system_check_removed_details.get("id", "fields.EXXX"), + ) + ] + elif self.system_check_deprecated_details is not None: + return [ + checks.Warning( + self.system_check_deprecated_details.get( + "msg", "%s has been deprecated." % self.__class__.__name__ + ), + hint=self.system_check_deprecated_details.get("hint"), + obj=self, + id=self.system_check_deprecated_details.get("id", "fields.WXXX"), + ) + ] + return [] + def get_col(self, alias, output_field=None): if alias == self.model._meta.db_table and ( output_field is None or output_field == self diff --git a/django/utils/deprecation.py b/django/utils/deprecation.py index eaef4961385..caed5b25d4b 100644 --- a/django/utils/deprecation.py +++ b/django/utils/deprecation.py @@ -157,42 +157,3 @@ class MiddlewareMixin: thread_sensitive=True, )(request, response) return response - - -class DeprecationForHistoricalMigrationMixin: - system_check_deprecated_details = None - system_check_removed_details = None - check_type = "" - - def check_deprecation_details(self): - from django.core import checks - - if self.system_check_removed_details is not None: - return [ - checks.Error( - self.system_check_removed_details.get( - "msg", - "%s has been removed except for support in historical " - "migrations." % self.__class__.__name__, - ), - hint=self.system_check_removed_details.get("hint"), - obj=self, - id=self.system_check_removed_details.get( - "id", f"{self.check_type}.EXXX" - ), - ) - ] - elif self.system_check_deprecated_details is not None: - return [ - checks.Warning( - self.system_check_deprecated_details.get( - "msg", "%s has been deprecated." % self.__class__.__name__ - ), - hint=self.system_check_deprecated_details.get("hint"), - obj=self, - id=self.system_check_deprecated_details.get( - "id", f"{self.check_type}.WXXX" - ), - ) - ] - return []