Commit 37f7f233 authored by Baptiste Mispelon's avatar Baptiste Mispelon
Browse files

Fixed #22272 -- Fixed regression in DecimalField when using decimal_places=0.

Thanks to trac user merb for the report.
parent 666a2ad2
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -1379,9 +1379,9 @@ class DecimalField(Field):

    def deconstruct(self):
        name, path, args, kwargs = super(DecimalField, self).deconstruct()
        if self.max_digits:
        if self.max_digits is not None:
            kwargs['max_digits'] = self.max_digits
        if self.decimal_places:
        if self.decimal_places is not None:
            kwargs['decimal_places'] = self.decimal_places
        return name, path, args, kwargs

+10 −0
Original line number Diff line number Diff line
@@ -110,6 +110,16 @@ class FieldDeconstructionTests(TestCase):
        self.assertEqual(args, [])
        self.assertEqual(kwargs, {"max_digits": 5, "decimal_places": 2})

    def test_decimal_field_0_decimal_places(self):
        """
        A DecimalField with decimal_places=0 shoudl work (#22272).
        """
        field = models.DecimalField(max_digits=5, decimal_places=0)
        name, path, args, kwargs = field.deconstruct()
        self.assertEqual(path, "django.db.models.DecimalField")
        self.assertEqual(args, [])
        self.assertEqual(kwargs, {"max_digits": 5, "decimal_places": 0})

    def test_email_field(self):
        field = models.EmailField()
        name, path, args, kwargs = field.deconstruct()