summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorabhiabhi94 <13880786+abhiabhi94@users.noreply.github.com>2021-07-01 12:58:02 +0530
committerMariusz Felisiak <felisiak.mariusz@gmail.com>2021-07-01 12:42:32 +0200
commitfde6fb28984a76d5bee794f4c0458eb25fe56fcd (patch)
tree9f21e5d4c9c5012f027528d82eb5f2d86f393bad
parent36fa071d6ebd18a61c4d7f1b5c9d17106134bd44 (diff)
Fixed #32893 -- Fixed serialization of models.Model class in migrations.
Migrations assumed that an import of the models.Model class must already be included when it's serialized, but for models with only custom fields this was not necessarily the case. Thanks Jaap Joris Vens for the report.
-rw-r--r--django/db/migrations/serializer.py2
-rw-r--r--tests/migrations/test_writer.py7
2 files changed, 8 insertions, 1 deletions
diff --git a/django/db/migrations/serializer.py b/django/db/migrations/serializer.py
index e19c881cda..6e78462e95 100644
--- a/django/db/migrations/serializer.py
+++ b/django/db/migrations/serializer.py
@@ -273,7 +273,7 @@ class TupleSerializer(BaseSequenceSerializer):
class TypeSerializer(BaseSerializer):
def serialize(self):
special_cases = [
- (models.Model, "models.Model", []),
+ (models.Model, "models.Model", ['from django.db import models']),
(type(None), 'type(None)', []),
]
for case, string, imports in special_cases:
diff --git a/tests/migrations/test_writer.py b/tests/migrations/test_writer.py
index a590ff4398..471194ffc2 100644
--- a/tests/migrations/test_writer.py
+++ b/tests/migrations/test_writer.py
@@ -658,6 +658,13 @@ class WriterTests(SimpleTestCase):
def test_serialize_type_none(self):
self.assertSerializedEqual(type(None))
+ def test_serialize_type_model(self):
+ self.assertSerializedEqual(models.Model)
+ self.assertSerializedResultEqual(
+ MigrationWriter.serialize(models.Model),
+ ("('models.Model', {'from django.db import models'})", set()),
+ )
+
def test_simple_migration(self):
"""
Tests serializing a simple migration.