mirror of https://github.com/django/django.git
Fixed #18063 -- Avoid unicode in Model.__repr__ in python 2
Thanks guettli and mrmachine.
This commit is contained in:
parent
30bdf22bc7
commit
3fce0d2a91
|
@ -404,6 +404,8 @@ class Model(six.with_metaclass(ModelBase, object)):
|
||||||
u = six.text_type(self)
|
u = six.text_type(self)
|
||||||
except (UnicodeEncodeError, UnicodeDecodeError):
|
except (UnicodeEncodeError, UnicodeDecodeError):
|
||||||
u = '[Bad Unicode data]'
|
u = '[Bad Unicode data]'
|
||||||
|
if not six.PY3:
|
||||||
|
u = u.encode('ascii', 'replace')
|
||||||
return smart_str('<%s: %s>' % (self.__class__.__name__, u))
|
return smart_str('<%s: %s>' % (self.__class__.__name__, u))
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
|
|
|
@ -1,3 +1,5 @@
|
||||||
|
# coding: utf-8
|
||||||
|
|
||||||
from __future__ import absolute_import, unicode_literals
|
from __future__ import absolute_import, unicode_literals
|
||||||
|
|
||||||
import datetime
|
import datetime
|
||||||
|
@ -146,6 +148,14 @@ class ModelTests(TestCase):
|
||||||
b = BrokenUnicodeMethod.objects.create(name="Jerry")
|
b = BrokenUnicodeMethod.objects.create(name="Jerry")
|
||||||
self.assertEqual(repr(b), "<BrokenUnicodeMethod: [Bad Unicode data]>")
|
self.assertEqual(repr(b), "<BrokenUnicodeMethod: [Bad Unicode data]>")
|
||||||
|
|
||||||
|
def test_no_unicode_in_repr(self):
|
||||||
|
a = Article.objects.create(
|
||||||
|
headline="Watch for umlauts: üöä", pub_date=datetime.datetime.now())
|
||||||
|
if six.PY3:
|
||||||
|
self.assertEqual(repr(a), '<Article: Watch for umlauts: üöä>')
|
||||||
|
else:
|
||||||
|
self.assertEqual(repr(a), '<Article: Watch for umlauts: ???>')
|
||||||
|
|
||||||
@skipUnlessDBFeature("supports_timezones")
|
@skipUnlessDBFeature("supports_timezones")
|
||||||
def test_timezones(self):
|
def test_timezones(self):
|
||||||
# Saving an updating with timezone-aware datetime Python objects.
|
# Saving an updating with timezone-aware datetime Python objects.
|
||||||
|
|
Loading…
Reference in New Issue