|
@@ -1,78 +1,45 @@
|
|
-import warnings
|
|
|
|
-
|
|
|
|
from django.db.models import CharField, EmailField, TextField
|
|
from django.db.models import CharField, EmailField, TextField
|
|
-from django.test.utils import ignore_warnings
|
|
|
|
-from django.utils.deprecation import RemovedInDjango51Warning
|
|
|
|
-
|
|
|
|
-__all__ = ["CICharField", "CIEmailField", "CIText", "CITextField"]
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-# RemovedInDjango51Warning.
|
|
|
|
-class CIText:
|
|
|
|
- def __init__(self, *args, **kwargs):
|
|
|
|
- warnings.warn(
|
|
|
|
- "django.contrib.postgres.fields.CIText mixin is deprecated.",
|
|
|
|
- RemovedInDjango51Warning,
|
|
|
|
- stacklevel=2,
|
|
|
|
- )
|
|
|
|
- super().__init__(*args, **kwargs)
|
|
|
|
|
|
|
|
- def get_internal_type(self):
|
|
|
|
- return "CI" + super().get_internal_type()
|
|
|
|
|
|
+__all__ = ["CICharField", "CIEmailField", "CITextField"]
|
|
|
|
|
|
- def db_type(self, connection):
|
|
|
|
- return "citext"
|
|
|
|
|
|
|
|
-
|
|
|
|
-class CICharField(CIText, CharField):
|
|
|
|
- system_check_deprecated_details = {
|
|
|
|
|
|
+class CICharField(CharField):
|
|
|
|
+ system_check_removed_details = {
|
|
"msg": (
|
|
"msg": (
|
|
- "django.contrib.postgres.fields.CICharField is deprecated. Support for it "
|
|
|
|
- "(except in historical migrations) will be removed in Django 5.1."
|
|
|
|
|
|
+ "django.contrib.postgres.fields.CICharField is removed except for support "
|
|
|
|
+ "in historical migrations."
|
|
),
|
|
),
|
|
"hint": (
|
|
"hint": (
|
|
'Use CharField(db_collation="…") with a case-insensitive non-deterministic '
|
|
'Use CharField(db_collation="…") with a case-insensitive non-deterministic '
|
|
"collation instead."
|
|
"collation instead."
|
|
),
|
|
),
|
|
- "id": "fields.W905",
|
|
|
|
|
|
+ "id": "fields.E905",
|
|
}
|
|
}
|
|
|
|
|
|
- def __init__(self, *args, **kwargs):
|
|
|
|
- with ignore_warnings(category=RemovedInDjango51Warning):
|
|
|
|
- super().__init__(*args, **kwargs)
|
|
|
|
-
|
|
|
|
|
|
|
|
-class CIEmailField(CIText, EmailField):
|
|
|
|
- system_check_deprecated_details = {
|
|
|
|
|
|
+class CIEmailField(EmailField):
|
|
|
|
+ system_check_removed_details = {
|
|
"msg": (
|
|
"msg": (
|
|
- "django.contrib.postgres.fields.CIEmailField is deprecated. Support for it "
|
|
|
|
- "(except in historical migrations) will be removed in Django 5.1."
|
|
|
|
|
|
+ "django.contrib.postgres.fields.CIEmailField is removed except for support "
|
|
|
|
+ "in historical migrations."
|
|
),
|
|
),
|
|
"hint": (
|
|
"hint": (
|
|
'Use EmailField(db_collation="…") with a case-insensitive '
|
|
'Use EmailField(db_collation="…") with a case-insensitive '
|
|
"non-deterministic collation instead."
|
|
"non-deterministic collation instead."
|
|
),
|
|
),
|
|
- "id": "fields.W906",
|
|
|
|
|
|
+ "id": "fields.E906",
|
|
}
|
|
}
|
|
|
|
|
|
- def __init__(self, *args, **kwargs):
|
|
|
|
- with ignore_warnings(category=RemovedInDjango51Warning):
|
|
|
|
- super().__init__(*args, **kwargs)
|
|
|
|
|
|
|
|
-
|
|
|
|
-class CITextField(CIText, TextField):
|
|
|
|
- system_check_deprecated_details = {
|
|
|
|
|
|
+class CITextField(TextField):
|
|
|
|
+ system_check_removed_details = {
|
|
"msg": (
|
|
"msg": (
|
|
- "django.contrib.postgres.fields.CITextField is deprecated. Support for it "
|
|
|
|
- "(except in historical migrations) will be removed in Django 5.1."
|
|
|
|
|
|
+ "django.contrib.postgres.fields.CITextField is removed except for support "
|
|
|
|
+ "in historical migrations."
|
|
),
|
|
),
|
|
"hint": (
|
|
"hint": (
|
|
'Use TextField(db_collation="…") with a case-insensitive non-deterministic '
|
|
'Use TextField(db_collation="…") with a case-insensitive non-deterministic '
|
|
"collation instead."
|
|
"collation instead."
|
|
),
|
|
),
|
|
- "id": "fields.W907",
|
|
|
|
|
|
+ "id": "fields.E907",
|
|
}
|
|
}
|
|
-
|
|
|
|
- def __init__(self, *args, **kwargs):
|
|
|
|
- with ignore_warnings(category=RemovedInDjango51Warning):
|
|
|
|
- super().__init__(*args, **kwargs)
|
|
|