diff options
| author | Simon Charette <charette.s@gmail.com> | 2015-11-25 12:31:23 -0500 |
|---|---|---|
| committer | Simon Charette <charette.s@gmail.com> | 2015-11-26 11:21:35 -0500 |
| commit | b4a1d545db19bb427af4043ce2c689dad856514f (patch) | |
| tree | 3e5a60813e6ac434f2673563f2cb141a0b44fa9b /django | |
| parent | f7e599ad25e52e8108a2bf6c17fb203b398ed986 (diff) | |
[1.9.x] Fixed #25807 -- Instructed the migration writer about lazy objects.
Thanks to Trac alias mrgaolei for the report, Baptiste for the confirmation
and Tim for the review.
Backport of cc2ca9c550fbf8fca8684b373a3c8e3618eea08e from master
Diffstat (limited to 'django')
| -rw-r--r-- | django/db/migrations/writer.py | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/django/db/migrations/writer.py b/django/db/migrations/writer.py index aa9f393e4b..f48ac9a7b8 100644 --- a/django/db/migrations/writer.py +++ b/django/db/migrations/writer.py @@ -19,7 +19,7 @@ from django.db.migrations.utils import COMPILED_REGEX_TYPE, RegexObject from django.utils import datetime_safe, six from django.utils._os import upath from django.utils.encoding import force_text -from django.utils.functional import Promise +from django.utils.functional import LazyObject, Promise from django.utils.inspect import get_func_args from django.utils.module_loading import module_dir from django.utils.timezone import now, utc @@ -344,6 +344,10 @@ class MigrationWriter(object): # process. if isinstance(value, Promise): value = force_text(value) + elif isinstance(value, LazyObject): + # The unwrapped value is returned as the first item of the + # arguments tuple. + value = value.__reduce__()[1][0] # Sequences if isinstance(value, (frozenset, list, set, tuple)): |
