This reverts 7990d254b0af158baf827fafbd90fe8e890f23bd. Thanks Marc Odermatt for the report. Backport of 0c1518ee429b01c145cf5b34eab01b0b92f8c246 from main
This commit is contained in:
parent
a44e974412
commit
91f8df5c2e
@ -1753,13 +1753,11 @@ class DecimalField(Field):
|
|||||||
)
|
)
|
||||||
return decimal_value
|
return decimal_value
|
||||||
|
|
||||||
def get_db_prep_value(self, value, connection, prepared=False):
|
def get_db_prep_save(self, value, connection):
|
||||||
if not prepared:
|
|
||||||
value = self.get_prep_value(value)
|
|
||||||
if hasattr(value, "as_sql"):
|
if hasattr(value, "as_sql"):
|
||||||
return value
|
return value
|
||||||
return connection.ops.adapt_decimalfield_value(
|
return connection.ops.adapt_decimalfield_value(
|
||||||
value, self.max_digits, self.decimal_places
|
self.to_python(value), self.max_digits, self.decimal_places
|
||||||
)
|
)
|
||||||
|
|
||||||
def get_prep_value(self, value):
|
def get_prep_value(self, value):
|
||||||
|
@ -36,3 +36,7 @@ Bugfixes
|
|||||||
* Fixed a regression in Django 4.2 that caused a crash of
|
* Fixed a regression in Django 4.2 that caused a crash of
|
||||||
``QuerySet.aggregate()`` with aggregates referencing subqueries
|
``QuerySet.aggregate()`` with aggregates referencing subqueries
|
||||||
(:ticket:`34551`).
|
(:ticket:`34551`).
|
||||||
|
|
||||||
|
* Fixed a regression in Django 4.2 that caused a crash of querysets on SQLite
|
||||||
|
when filtering on ``DecimalField`` against values outside of the defined
|
||||||
|
range (:ticket:`34590`).
|
||||||
|
@ -91,7 +91,10 @@ class DecimalFieldTests(TestCase):
|
|||||||
Really big values can be used in a filter statement.
|
Really big values can be used in a filter statement.
|
||||||
"""
|
"""
|
||||||
# This should not crash.
|
# This should not crash.
|
||||||
Foo.objects.filter(d__gte=100000000000)
|
self.assertSequenceEqual(Foo.objects.filter(d__gte=100000000000), [])
|
||||||
|
|
||||||
|
def test_lookup_decimal_larger_than_max_digits(self):
|
||||||
|
self.assertSequenceEqual(Foo.objects.filter(d__lte=Decimal("123456")), [])
|
||||||
|
|
||||||
def test_max_digits_validation(self):
|
def test_max_digits_validation(self):
|
||||||
field = models.DecimalField(max_digits=2)
|
field = models.DecimalField(max_digits=2)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user