From a5328c11a8d31e1874613cac6c25afa1281be5e0 Mon Sep 17 00:00:00 2001 From: Ryan P Kilby Date: Wed, 11 Dec 2019 22:37:05 -0800 Subject: [PATCH] Do not validate decimal precision when rounding --- rest_framework/fields.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/rest_framework/fields.py b/rest_framework/fields.py index 1733f1139..2117d1975 100644 --- a/rest_framework/fields.py +++ b/rest_framework/fields.py @@ -1080,10 +1080,11 @@ class DecimalField(Field): if value in (decimal.Decimal('Inf'), decimal.Decimal('-Inf')): self.fail('invalid') - if self.rounding is None: - return self.quantize(self.validate_precision(value)) - else: - return self.validate_precision(self.quantize(value)) + if self.rounding is not None: + # It is unnecessary to validate precision when rounding, + # since the value will be truncated to the correct size. + return self.quantize(value) + return self.quantize(self.validate_precision(value)) def validate_precision(self, value): """