Loading django/db/migrations/writer.py +3 −0 Original line number Diff line number Diff line Loading @@ -323,6 +323,9 @@ class MigrationWriter(object): if isinstance(value, datetime_safe.time): value_repr = "datetime.%s" % value_repr return value_repr, {"import datetime"} # Timedeltas elif isinstance(value, datetime.timedelta): return repr(value), {"import datetime"} # Settings references elif isinstance(value, SettingsReference): return "settings.%s" % value.setting_name, {"from django.conf import settings"} Loading docs/releases/1.8.1.txt +2 −1 Original line number Diff line number Diff line Loading @@ -9,4 +9,5 @@ Django 1.8.1 fixes several bugs in 1.8. Bugfixes ======== * ... * Added support for serializing :class:`~datetime.timedelta` objects in migrations (:ticket:`24566`). tests/migrations/test_writer.py +5 −0 Original line number Diff line number Diff line Loading @@ -339,6 +339,11 @@ class WriterTests(TestCase): self.assertSerializedEqual(FoodManager('a', 'b')) self.assertSerializedEqual(FoodManager('x', 'y', c=3, d=4)) def test_serialize_timedelta(self): self.assertSerializedEqual(datetime.timedelta()) self.assertSerializedEqual(datetime.timedelta(minutes=42)) def test_simple_migration(self): """ Tests serializing a simple migration. Loading Loading
django/db/migrations/writer.py +3 −0 Original line number Diff line number Diff line Loading @@ -323,6 +323,9 @@ class MigrationWriter(object): if isinstance(value, datetime_safe.time): value_repr = "datetime.%s" % value_repr return value_repr, {"import datetime"} # Timedeltas elif isinstance(value, datetime.timedelta): return repr(value), {"import datetime"} # Settings references elif isinstance(value, SettingsReference): return "settings.%s" % value.setting_name, {"from django.conf import settings"} Loading
docs/releases/1.8.1.txt +2 −1 Original line number Diff line number Diff line Loading @@ -9,4 +9,5 @@ Django 1.8.1 fixes several bugs in 1.8. Bugfixes ======== * ... * Added support for serializing :class:`~datetime.timedelta` objects in migrations (:ticket:`24566`).
tests/migrations/test_writer.py +5 −0 Original line number Diff line number Diff line Loading @@ -339,6 +339,11 @@ class WriterTests(TestCase): self.assertSerializedEqual(FoodManager('a', 'b')) self.assertSerializedEqual(FoodManager('x', 'y', c=3, d=4)) def test_serialize_timedelta(self): self.assertSerializedEqual(datetime.timedelta()) self.assertSerializedEqual(datetime.timedelta(minutes=42)) def test_simple_migration(self): """ Tests serializing a simple migration. Loading