[1.2.X] Fixed #14807 -- Ensure that boolean values aren't localized as T.rue and Fa.lse because of the thousand separator. Thanks to vanschelven for the report and
Backport of r14804 from trunk. git-svn-id: http://code.djangoproject.com/svn/django/branches/releases/1.2.X@14807 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
parent
70383ccf68
commit
6c53a816e7
@ -6,6 +6,7 @@ from django.utils.translation import get_language, to_locale, check_for_language
|
||||
from django.utils.importlib import import_module
|
||||
from django.utils.encoding import smart_str
|
||||
from django.utils import dateformat, numberformat, datetime_safe
|
||||
from django.utils.safestring import mark_safe
|
||||
|
||||
# format_cache is a mapping from (format_type, lang) to the format string.
|
||||
# By using the cache, it is possible to avoid running get_format_modules
|
||||
@ -93,7 +94,9 @@ def localize(value):
|
||||
Checks if value is a localizable type (date, number...) and returns it
|
||||
formatted as a string using current locale format
|
||||
"""
|
||||
if isinstance(value, (decimal.Decimal, float, int, long)):
|
||||
if isinstance(value, bool):
|
||||
return mark_safe(unicode(value))
|
||||
elif isinstance(value, (decimal.Decimal, float, int, long)):
|
||||
return number_format(value)
|
||||
elif isinstance(value, datetime.datetime):
|
||||
return date_format(value, 'DATETIME_FORMAT')
|
||||
|
@ -250,6 +250,7 @@ class FormattingTests(TestCase):
|
||||
self.assertEqual(u'66.666,666', localize(self.n))
|
||||
self.assertEqual(u'99.999,999', localize(self.f))
|
||||
self.assertEqual(u'10.000', localize(self.l))
|
||||
self.assertEqual(u'True', localize(True))
|
||||
|
||||
settings.USE_THOUSAND_SEPARATOR = False
|
||||
self.assertEqual(u'66666,666', localize(self.n))
|
||||
|
Loading…
x
Reference in New Issue
Block a user