diff options
| author | Aymeric Augustin <aymeric.augustin@m4x.org> | 2012-08-12 14:39:48 +0200 |
|---|---|---|
| committer | Aymeric Augustin <aymeric.augustin@m4x.org> | 2012-08-12 14:44:41 +0200 |
| commit | 4e68e861533846010e372ecf58e3cd0439081754 (patch) | |
| tree | 5611cdf2a7af452e08f5bf21f6faa03fa5320eb2 | |
| parent | d4a0b27838c815af87698920cc4db7d2afd6f05b (diff) | |
[py3] Deprecated StrAndUnicode.
This mix-in is superseded by the @python_2_unicode_compatible decorator.
| -rw-r--r-- | django/utils/encoding.py | 7 | ||||
| -rw-r--r-- | docs/releases/1.5.txt | 7 |
2 files changed, 14 insertions, 0 deletions
diff --git a/django/utils/encoding.py b/django/utils/encoding.py index 7030ab1db0..633022dd3b 100644 --- a/django/utils/encoding.py +++ b/django/utils/encoding.py @@ -8,6 +8,7 @@ try: from urllib.parse import quote except ImportError: # Python 2 from urllib import quote +import warnings from django.utils.functional import Promise from django.utils import six @@ -32,6 +33,12 @@ class StrAndUnicode(object): Useful as a mix-in. If you support Python 2 and 3 with a single code base, you can inherit this mix-in and just define __unicode__. """ + def __init__(self, *args, **kwargs): + warnings.warn("StrAndUnicode is deprecated. Define a __str__ method " + "and apply the @python_2_unicode_compatible decorator " + "instead.", PendingDeprecationWarning, stacklevel=2) + super(StrAndUnicode, self).__init__(*args, **kwargs) + if six.PY3: def __str__(self): return self.__unicode__() diff --git a/docs/releases/1.5.txt b/docs/releases/1.5.txt index f789ebde40..4aeb61af94 100644 --- a/docs/releases/1.5.txt +++ b/docs/releases/1.5.txt @@ -273,3 +273,10 @@ our own copy of ``simplejson``. You can safely change any use of The :func:`~django.utils.itercompat.product` function has been deprecated. Use the built-in :func:`itertools.product` instead. + +``django.utils.encoding.StrAndUnicode`` +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The :class:`~django.utils.encoding.StrAndUnicode` mix-in has been deprecated. +Define a ``__str__`` method and apply the +:func:`~django.utils.encoding.python_2_unicode_compatible` decorator instead. |
