27 lines
1.4 KiB
Diff
27 lines
1.4 KiB
Diff
Based on the issue description, the problem is in `django/db/migrations/serializer.py` where the `TypeSerializer` class uses `__name__` instead of `__qualname__`. The fix mentioned in the PR is to change `TypeSerializer` to use `__qualname__` for proper serialization of nested classes.
|
|
|
|
Let me provide the patch based on the issue description and the linked PR:
|
|
|
|
--- a/django/db/migrations/serializer.py
|
|
+++ b/django/db/migrations/serializer.py
|
|
@@ -268,7 +268,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 self.value is case:
|
|
return string, set(imports)
|
|
- if hasattr(self.value, "__module__"):
|
|
- module = self.value.__module__
|
|
- if module == builtins.__name__:
|
|
- return self.value.__name__, set()
|
|
- else:
|
|
- return "%s.%s" % (module, self.value.__name__), {"import %s" % module}
|
|
+ if hasattr(self.value, "__module__"):
|
|
+ module = self.value.__module__
|
|
+ if module == builtins.__name__:
|
|
+ return self.value.__qualname__, set()
|
|
+ else:
|
|
+ return "%s.%s" % (module, self.value.__qualname__), {"import %s" % module}
|