Loading django/db/migrations/writer.py +3 −0 Original line number Diff line number Diff line Loading @@ -351,6 +351,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 +4 −0 Original line number Diff line number Diff line Loading @@ -351,6 +351,10 @@ class WriterTests(TestCase): self.assertSerializedEqual(frozenset()) self.assertSerializedEqual(frozenset("let it go")) 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 @@ -351,6 +351,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 +4 −0 Original line number Diff line number Diff line Loading @@ -351,6 +351,10 @@ class WriterTests(TestCase): self.assertSerializedEqual(frozenset()) self.assertSerializedEqual(frozenset("let it go")) 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