diff options
| author | Loic Bistuer <loic.bistuer@sixmedia.com> | 2013-10-22 00:33:57 +0700 |
|---|---|---|
| committer | Tim Graham <timograham@gmail.com> | 2013-10-21 14:54:52 -0400 |
| commit | e565e1332ddfbb44fe7e6139375e3c243af7398d (patch) | |
| tree | e435682dd384a2fa4aca78b378679c92076041f2 /django/db | |
| parent | 28b70425afb2fb8bcbec09d249e37fa786f8a155 (diff) | |
Fixed #21275 -- Fixed a serializer error when generating migrations for contrib.auth.
The migration serializer now looks for a deconstruct method on any object.
Diffstat (limited to 'django/db')
| -rw-r--r-- | django/db/migrations/writer.py | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/django/db/migrations/writer.py b/django/db/migrations/writer.py index 0ee737811d..22b0977ba4 100644 --- a/django/db/migrations/writer.py +++ b/django/db/migrations/writer.py @@ -146,6 +146,9 @@ class MigrationWriter(object): elif isinstance(value, models.Field): attr_name, path, args, kwargs = value.deconstruct() return cls.serialize_deconstructed(path, args, kwargs) + # Anything that knows how to deconstruct itself. + elif hasattr(value, 'deconstruct'): + return cls.serialize_deconstructed(*value.deconstruct()) # Functions elif isinstance(value, (types.FunctionType, types.BuiltinFunctionType)): # @classmethod? @@ -153,8 +156,6 @@ class MigrationWriter(object): klass = value.__self__ module = klass.__module__ return "%s.%s.%s" % (module, klass.__name__, value.__name__), set(["import %s" % module]) - elif hasattr(value, 'deconstruct'): - return cls.serialize_deconstructed(*value.deconstruct()) elif value.__name__ == '<lambda>': raise ValueError("Cannot serialize function: lambda") elif value.__module__ is None: |
