summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBaptiste Mispelon <bmispelon@gmail.com>2014-08-03 14:02:21 +0200
committerBaptiste Mispelon <bmispelon@gmail.com>2014-08-03 15:27:57 +0200
commit0b1d0afc92e1dbc353418953960a083cbba63c50 (patch)
tree9fe3410eedf64c593f757246b7a75003e90c5a26
parent2c5eee9f88e885742563e642ef7d6141af3b0dd0 (diff)
[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 74325339327e5b8a2480aee7f482bc71f73c71f9 from master.
-rw-r--r--django/db/models/fields/__init__.py3
-rw-r--r--tests/field_deconstruction/tests.py17
2 files changed, 20 insertions, 0 deletions
diff --git a/django/db/models/fields/__init__.py b/django/db/models/fields/__init__.py
index 1971882e22..824200aba3 100644
--- a/django/db/models/fields/__init__.py
+++ b/django/db/models/fields/__init__.py
@@ -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):
diff --git a/tests/field_deconstruction/tests.py b/tests/field_deconstruction/tests.py
index 9a330b2998..cf699aeecd 100644
--- a/tests/field_deconstruction/tests.py
+++ b/tests/field_deconstruction/tests.py
@@ -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()