misc: only convert SafeString when running in Python 2 (#36515)

This commit is contained in:
Frédéric Péters 2019-11-12 11:08:41 +01:00
parent 7614f40bcd
commit 650c9c3093
1 changed files with 2 additions and 1 deletions

View File

@ -25,6 +25,7 @@ from django.template import (engines,
from django.template.loader import render_to_string
from django.utils.encoding import force_text, smart_text
from django.utils.safestring import SafeString, SafeText
from django.utils import six
from django.utils.six import StringIO
from quixote import get_session, get_request, get_response, get_publisher
@ -528,7 +529,7 @@ def variable_resolve(self, context):
except UnicodeEncodeError:
# don't crash on non-ascii variable names
return context.template.engine.string_if_invalid
if isinstance(value, SafeString):
if six.PY2 and isinstance(value, SafeString):
return SafeText(value, 'utf-8')
if isinstance(value, str):
return force_text(value, 'utf-8')