Refs #29598 -- Removed FloatRangeField per deprecation timeline.

This commit is contained in:
Mariusz Felisiak 2019-09-05 16:10:21 +02:00
parent 416c584cab
commit b47bb4c4a7
7 changed files with 5 additions and 73 deletions

View File

@ -11,7 +11,6 @@ from .utils import AttributeSetter
__all__ = [
'RangeField', 'IntegerRangeField', 'BigIntegerRangeField',
'DecimalRangeField', 'DateTimeRangeField', 'DateRangeField',
'FloatRangeField',
'RangeBoundary', 'RangeOperators',
]
@ -135,22 +134,6 @@ class DecimalRangeField(RangeField):
return 'numrange'
class FloatRangeField(RangeField):
system_check_deprecated_details = {
'msg': (
'FloatRangeField is deprecated and will be removed in Django 3.1.'
),
'hint': 'Use DecimalRangeField instead.',
'id': 'fields.W902',
}
base_field = models.FloatField
range_type = NumericRange
form_field = forms.FloatRangeField
def db_type(self, connection):
return 'numrange'
class DateTimeRangeField(RangeField):
base_field = models.DateTimeField
range_type = DateTimeTZRange

View File

@ -1,16 +1,13 @@
import warnings
from psycopg2.extras import DateRange, DateTimeTZRange, NumericRange
from django import forms
from django.core import exceptions
from django.forms.widgets import MultiWidget
from django.utils.deprecation import RemovedInDjango31Warning
from django.utils.translation import gettext_lazy as _
__all__ = [
'BaseRangeField', 'IntegerRangeField', 'DecimalRangeField',
'DateTimeRangeField', 'DateRangeField', 'FloatRangeField', 'RangeWidget',
'DateTimeRangeField', 'DateRangeField', 'RangeWidget',
]
@ -75,17 +72,6 @@ class DecimalRangeField(BaseRangeField):
range_type = NumericRange
class FloatRangeField(DecimalRangeField):
base_field = forms.FloatField
def __init__(self, **kwargs):
warnings.warn(
'FloatRangeField is deprecated in favor of DecimalRangeField.',
RemovedInDjango31Warning, stacklevel=2,
)
super().__init__(**kwargs)
class DateTimeRangeField(BaseRangeField):
default_error_messages = {'invalid': _('Enter two valid date/times.')}
base_field = forms.DateTimeField

View File

@ -174,7 +174,7 @@ Model fields
* **fields.E901**: ``CommaSeparatedIntegerField`` is removed except for support
in historical migrations.
* **fields.W902**: ``FloatRangeField`` is deprecated and will be removed in
Django 3.1.
Django 3.1. *This check appeared in Django 2.2 and 3.0*.
File fields
~~~~~~~~~~~

View File

@ -661,19 +661,6 @@ excluded; that is, ``[)``.
the database and a :class:`~psycopg2:psycopg2.extras.NumericRange` in
Python.
``FloatRangeField``
-------------------
.. class:: FloatRangeField(**options)
Stores a range of floating point values. Based on a
:class:`~django.db.models.FloatField`. Represented by a ``numrange`` in the
database and a :class:`~psycopg2:psycopg2.extras.NumericRange` in Python.
.. deprecated:: 2.2
Use :class:`DecimalRangeField` instead.
``DateTimeRangeField``
----------------------

View File

@ -201,19 +201,6 @@ not greater than the upper bound. All of these fields use
:class:`~psycopg2:psycopg2.extras.NumericRange`. Default for
:class:`~django.contrib.postgres.fields.DecimalRangeField`.
``FloatRangeField``
~~~~~~~~~~~~~~~~~~~
.. class:: FloatRangeField
Based on :class:`~django.forms.FloatField` and translates its input into
:class:`~psycopg2:psycopg2.extras.NumericRange`. Default for
:class:`~django.contrib.postgres.fields.FloatRangeField`.
.. deprecated:: 2.2
Use :class:`DecimalRangeField` instead.
``DateTimeRangeField``
~~~~~~~~~~~~~~~~~~~~~~

View File

@ -230,4 +230,5 @@ in Django 3.1.
See :ref:`deprecated-features-2.2` for details on these changes, including how
to remove usage of these features.
* ...
* ``django.contrib.postgres.fields.FloatRangeField`` and
``django.contrib.postgres.forms.FloatRangeField`` are removed.

View File

@ -5,9 +5,8 @@ from decimal import Decimal
from django import forms
from django.core import exceptions, serializers
from django.db.models import DateField, DateTimeField, F, Func, Value
from django.test import ignore_warnings, override_settings
from django.test import override_settings
from django.utils import timezone
from django.utils.deprecation import RemovedInDjango31Warning
from . import PostgreSQLSimpleTestCase, PostgreSQLTestCase
from .models import RangeLookupsModel, RangesModel
@ -445,22 +444,11 @@ class TestFormField(PostgreSQLSimpleTestCase):
value = field.clean(['1', '2'])
self.assertEqual(value, NumericRange(1, 2))
@ignore_warnings(category=RemovedInDjango31Warning)
def test_valid_floats(self):
field = pg_forms.FloatRangeField()
value = field.clean(['1.12345', '2.001'])
self.assertEqual(value, NumericRange(1.12345, 2.001))
def test_valid_decimal(self):
field = pg_forms.DecimalRangeField()
value = field.clean(['1.12345', '2.001'])
self.assertEqual(value, NumericRange(Decimal('1.12345'), Decimal('2.001')))
def test_float_range_field_deprecation(self):
msg = 'FloatRangeField is deprecated in favor of DecimalRangeField.'
with self.assertRaisesMessage(RemovedInDjango31Warning, msg):
pg_forms.FloatRangeField()
def test_valid_timestamps(self):
field = pg_forms.DateTimeRangeField()
value = field.clean(['01/01/2014 00:00:00', '02/02/2014 12:12:12'])