mirror of https://github.com/django/django.git
Fixed #24927 -- Used python_2_unicode_compatible from six
This commit is contained in:
parent
2fbea621e6
commit
c91bc68e9a
|
@ -25,22 +25,8 @@ class DjangoUnicodeDecodeError(UnicodeDecodeError):
|
||||||
type(self.obj))
|
type(self.obj))
|
||||||
|
|
||||||
|
|
||||||
def python_2_unicode_compatible(klass):
|
# For backwards compatibility. (originally in Django, then added to six 1.9)
|
||||||
"""
|
python_2_unicode_compatible = six.python_2_unicode_compatible
|
||||||
A decorator that defines __unicode__ and __str__ methods under Python 2.
|
|
||||||
Under Python 3 it does nothing.
|
|
||||||
|
|
||||||
To support Python 2 and 3 with a single code base, define a __str__ method
|
|
||||||
returning text and apply this decorator to the class.
|
|
||||||
"""
|
|
||||||
if six.PY2:
|
|
||||||
if '__str__' not in klass.__dict__:
|
|
||||||
raise ValueError("@python_2_unicode_compatible cannot be applied "
|
|
||||||
"to %s because it doesn't define __str__()." %
|
|
||||||
klass.__name__)
|
|
||||||
klass.__unicode__ = klass.__str__
|
|
||||||
klass.__str__ = lambda self: self.__unicode__().encode('utf-8')
|
|
||||||
return klass
|
|
||||||
|
|
||||||
|
|
||||||
def smart_text(s, encoding='utf-8', strings_only=False, errors='strict'):
|
def smart_text(s, encoding='utf-8', strings_only=False, errors='strict'):
|
||||||
|
|
Loading…
Reference in New Issue