mirror of
https://github.com/encode/django-rest-framework.git
synced 2025-07-24 23:19:47 +03:00
Removed comment and renamed normalize to normalize_output as suggested in code review
This commit is contained in:
parent
9c1fffa8c3
commit
f22acca58c
|
@ -281,7 +281,7 @@ Corresponds to `django.db.models.fields.DecimalField`.
|
|||
- `min_value` Validate that the number provided is no less than this value.
|
||||
- `localize` Set to `True` to enable localization of input and output based on the current locale. This will also force `coerce_to_string` to `True`. Defaults to `False`. Note that data formatting is enabled if you have set `USE_L10N=True` in your settings file.
|
||||
- `rounding` Sets the rounding mode used when quantising to the configured precision. Valid values are [`decimal` module rounding modes][python-decimal-rounding-modes]. Defaults to `None`.
|
||||
- `normalize` Will normalize the decimal value. This will strip all trailing zeroes and change the value's precision to the minimum required precision to be able to represent the value without loosing data. Defaults to `False`.
|
||||
- `normalize_output` Will normalize the decimal value when serialized. This will strip all trailing zeroes and change the value's precision to the minimum required precision to be able to represent the value without loosing data. Defaults to `False`.
|
||||
|
||||
#### Example usage
|
||||
|
||||
|
|
|
@ -1014,11 +1014,11 @@ class DecimalField(Field):
|
|||
MAX_STRING_LENGTH = 1000 # Guard against malicious string inputs.
|
||||
|
||||
def __init__(self, max_digits, decimal_places, coerce_to_string=None, max_value=None, min_value=None,
|
||||
localize=False, rounding=None, normalize=False, **kwargs):
|
||||
localize=False, rounding=None, normalize_output=False, **kwargs):
|
||||
self.max_digits = max_digits
|
||||
self.decimal_places = decimal_places
|
||||
self.localize = localize
|
||||
self.normalize = normalize
|
||||
self.normalize_output = normalize_output
|
||||
if coerce_to_string is not None:
|
||||
self.coerce_to_string = coerce_to_string
|
||||
if self.localize:
|
||||
|
@ -1126,9 +1126,7 @@ class DecimalField(Field):
|
|||
|
||||
quantized = self.quantize(value)
|
||||
|
||||
# TODO: Should maybe name the value to something not bound to
|
||||
# quantized. Ex: out_value
|
||||
if self.normalize:
|
||||
if self.normalize_output:
|
||||
quantized = quantized.normalize()
|
||||
|
||||
if not coerce_to_string:
|
||||
|
|
|
@ -1170,23 +1170,23 @@ class TestQuantizedValueForDecimal(TestCase):
|
|||
assert value == expected_digit_tuple
|
||||
|
||||
|
||||
class TestNormalizedValueDecimalField(TestCase):
|
||||
class TestNormalizedOutputValueDecimalField(TestCase):
|
||||
"""
|
||||
Test that we get the expected behavior of on DecimalField when normalize=True
|
||||
"""
|
||||
|
||||
def test_normalize_output(self):
|
||||
field = serializers.DecimalField(max_digits=4, decimal_places=3, normalize=True)
|
||||
field = serializers.DecimalField(max_digits=4, decimal_places=3, normalize_output=True)
|
||||
output = field.to_representation(Decimal('1.000'))
|
||||
assert output == '1'
|
||||
|
||||
def test_non_normalize_output(self):
|
||||
field = serializers.DecimalField(max_digits=4, decimal_places=3, normalize=False)
|
||||
field = serializers.DecimalField(max_digits=4, decimal_places=3, normalize_output=False)
|
||||
output = field.to_representation(Decimal('1.000'))
|
||||
assert output == '1.000'
|
||||
|
||||
def test_normalize_coeherce_to_string(self):
|
||||
field = serializers.DecimalField(max_digits=4, decimal_places=3, normalize=True, coerce_to_string=False)
|
||||
field = serializers.DecimalField(max_digits=4, decimal_places=3, normalize_output=True, coerce_to_string=False)
|
||||
output = field.to_representation(Decimal('1.000'))
|
||||
assert output == Decimal('1')
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user