summaryrefslogtreecommitdiff
path: root/django
diff options
context:
space:
mode:
authorSimon Charette <charette.s@gmail.com>2015-11-25 12:31:23 -0500
committerSimon Charette <charette.s@gmail.com>2015-11-26 11:21:35 -0500
commitb4a1d545db19bb427af4043ce2c689dad856514f (patch)
tree3e5a60813e6ac434f2673563f2cb141a0b44fa9b /django
parentf7e599ad25e52e8108a2bf6c17fb203b398ed986 (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.py6
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)):