mirror of
https://github.com/django/django.git
synced 2025-02-28 19:44:35 +00:00
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
|
||||
|
||||
def get_db_prep_value(self, value, connection, prepared=False):
|
||||
if not prepared:
|
||||
value = self.get_prep_value(value)
|
||||
def get_db_prep_save(self, value, connection):
|
||||
if hasattr(value, "as_sql"):
|
||||
return 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):
|
||||
|
@ -36,3 +36,7 @@ Bugfixes
|
||||
* Fixed a regression in Django 4.2 that caused a crash of
|
||||
``QuerySet.aggregate()`` with aggregates referencing subqueries
|
||||
(: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.
|
||||
"""
|
||||
# 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):
|
||||
field = models.DecimalField(max_digits=2)
|
||||
|
Loading…
x
Reference in New Issue
Block a user