diff options
| author | Adam Johnson <me@adamj.eu> | 2025-05-11 23:08:38 +0200 |
|---|---|---|
| committer | nessita <124304+nessita@users.noreply.github.com> | 2025-05-13 21:42:19 -0300 |
| commit | 6e36f7f78415e454dcde1d9ee33f2d2c7fdfdfad (patch) | |
| tree | 605e45b5655f6186f88a623671f88a7854dc33d5 /django | |
| parent | 57fdc104d26df0a060f637f2128d830bfcc8e4f8 (diff) | |
Fixed #36383 -- Improved migration serialization for functools.partial objects.
Diffstat (limited to 'django')
| -rw-r--r-- | django/db/migrations/serializer.py | 22 |
1 files changed, 5 insertions, 17 deletions
diff --git a/django/db/migrations/serializer.py b/django/db/migrations/serializer.py index 50d9cacdc1..cfc2657261 100644 --- a/django/db/migrations/serializer.py +++ b/django/db/migrations/serializer.py @@ -207,23 +207,11 @@ class FunctionTypeSerializer(BaseSerializer): class FunctoolsPartialSerializer(BaseSerializer): def serialize(self): - # Serialize functools.partial() arguments - func_string, func_imports = serializer_factory(self.value.func).serialize() - args_string, args_imports = serializer_factory(self.value.args).serialize() - keywords_string, keywords_imports = serializer_factory( - self.value.keywords - ).serialize() - # Add any imports needed by arguments - imports = {"import functools", *func_imports, *args_imports, *keywords_imports} - return ( - "functools.%s(%s, *%s, **%s)" - % ( - self.value.__class__.__name__, - func_string, - args_string, - keywords_string, - ), - imports, + partial_name = self.value.__class__.__name__ + return DeconstructibleSerializer.serialize_deconstructed( + f"functools.{partial_name}", + (self.value.func, *self.value.args), + self.value.keywords, ) |
