Commit 0b1d0afc authored by Baptiste Mispelon's avatar Baptiste Mispelon
Browse files

[1.7.x] Added missing logic to TimeField.deconstruct().

If auto_now or auto_now_add was used then the serialized
field in the migration contained unnecessary `editable` and
`blank` arguments.

Backport of 74325339 from master.
parent 2c5eee9f
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -1916,6 +1916,9 @@ class TimeField(Field):
            kwargs["auto_now"] = self.auto_now
        if self.auto_now_add is not False:
            kwargs["auto_now_add"] = self.auto_now_add
        if self.auto_now or self.auto_now_add:
            del kwargs['blank']
            del kwargs['editable']
        return name, path, args, kwargs

    def get_internal_type(self):
+17 −0
Original line number Diff line number Diff line
@@ -336,6 +336,23 @@ class FieldDeconstructionTests(TestCase):
        self.assertEqual(args, [])
        self.assertEqual(kwargs, {})

    def test_time_field(self):
        field = models.TimeField()
        name, path, args, kwargs = field.deconstruct()
        self.assertEqual(path, "django.db.models.TimeField")
        self.assertEqual(args, [])
        self.assertEqual(kwargs, {})

        field = models.TimeField(auto_now=True)
        name, path, args, kwargs = field.deconstruct()
        self.assertEqual(args, [])
        self.assertEqual(kwargs, {'auto_now': True})

        field = models.TimeField(auto_now_add=True)
        name, path, args, kwargs = field.deconstruct()
        self.assertEqual(args, [])
        self.assertEqual(kwargs, {'auto_now_add': True})

    def test_url_field(self):
        field = models.URLField()
        name, path, args, kwargs = field.deconstruct()