summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPatrik Sletmo <patrik.sletmo@gmail.com>2018-10-11 13:54:37 +0200
committerTim Graham <timograham@gmail.com>2018-10-11 09:02:14 -0400
commitadfdb9f1695d8710456b54282fcc6f306fc918c0 (patch)
tree22030e1ffc91922566840ba695b6705fa8582c7e
parent52fec5d18f46febedd461c47f3829750a2a7160b (diff)
Fixed #29814 -- Added support for NoneType serialization in migrations.
-rw-r--r--AUTHORS1
-rw-r--r--django/db/migrations/serializer.py1
-rw-r--r--docs/releases/2.2.txt2
-rw-r--r--docs/topics/migrations.txt6
-rw-r--r--tests/migrations/test_writer.py3
5 files changed, 12 insertions, 1 deletions
diff --git a/AUTHORS b/AUTHORS
index ac4ab8410e..9eeca9f580 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -651,6 +651,7 @@ answer newbie questions, and generally made Django that much better:
Panos Laganakos <panos.laganakos@gmail.com>
Pascal Hartig <phartig@rdrei.net>
Pascal Varet
+ Patrik Sletmo <patrik.sletmo@gmail.com>
Paul Bissex <http://e-scribe.com/>
Paul Collier <paul@paul-collier.com>
Paul Collins <paul.collins.iii@gmail.com>
diff --git a/django/db/migrations/serializer.py b/django/db/migrations/serializer.py
index 911cf0f359..6fe49e4a8a 100644
--- a/django/db/migrations/serializer.py
+++ b/django/db/migrations/serializer.py
@@ -252,6 +252,7 @@ class TypeSerializer(BaseSerializer):
def serialize(self):
special_cases = [
(models.Model, "models.Model", []),
+ (type(None), 'type(None)', []),
]
for case, string, imports in special_cases:
if case is self.value:
diff --git a/docs/releases/2.2.txt b/docs/releases/2.2.txt
index 8f5409e1d1..22d7eee0c1 100644
--- a/docs/releases/2.2.txt
+++ b/docs/releases/2.2.txt
@@ -188,6 +188,8 @@ Migrations
* The new :option:`migrate --plan` option prints the list of migration
operations that will be performed.
+* ``NoneType`` can now be serialized in migrations.
+
Models
~~~~~~
diff --git a/docs/topics/migrations.txt b/docs/topics/migrations.txt
index 1073ce0cbe..3f0a1fa68c 100644
--- a/docs/topics/migrations.txt
+++ b/docs/topics/migrations.txt
@@ -666,7 +666,7 @@ for basic values, and doesn't specify import paths).
Django can serialize the following:
-- ``int``, ``float``, ``bool``, ``str``, ``bytes``, ``None``
+- ``int``, ``float``, ``bool``, ``str``, ``bytes``, ``None``, ``NoneType``
- ``list``, ``set``, ``tuple``, ``dict``
- ``datetime.date``, ``datetime.time``, and ``datetime.datetime`` instances
(include those that are timezone-aware)
@@ -686,6 +686,10 @@ Django can serialize the following:
Serialization support for :class:`functools.partialmethod` was added.
+.. versionchanged:: 2.2
+
+ Serialization support for ``NoneType`` was added.
+
Django cannot serialize:
- Nested classes
diff --git a/tests/migrations/test_writer.py b/tests/migrations/test_writer.py
index c656f95666..f7ec6f4bd3 100644
--- a/tests/migrations/test_writer.py
+++ b/tests/migrations/test_writer.py
@@ -513,6 +513,9 @@ class WriterTests(SimpleTestCase):
self.assertEqual(result.args, value.args)
self.assertEqual(result.keywords, value.keywords)
+ def test_serialize_type_none(self):
+ self.assertSerializedEqual(type(None))
+
def test_simple_migration(self):
"""
Tests serializing a simple migration.