From cc2ca9c550fbf8fca8684b373a3c8e3618eea08e Mon Sep 17 00:00:00 2001 From: Simon Charette Date: Wed, 25 Nov 2015 12:31:23 -0500 Subject: 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. --- django/db/migrations/writer.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'django') diff --git a/django/db/migrations/writer.py b/django/db/migrations/writer.py index 692beef384..f36db323a0 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 @@ -350,6 +350,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)): -- cgit v1.3