|
@@ -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"""
|
|
|
|
|
|
|
|
@@ -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
|
|
|
|
|
|
|
|
|
|
|
@@ -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
|