From e5cd43e5884ec5860cb7f421b6f84eda93e70b3b Mon Sep 17 00:00:00 2001 From: Brian Rosner Date: Wed, 11 Feb 2009 20:13:17 +0000 Subject: Fixed #5903 -- DecimalField.get_default() now correctly returns a Decimal object when the model instance was not retrieved from the database. Thanks Justin Driscoll and pigletto. git-svn-id: http://code.djangoproject.com/svn/django/trunk@9823 bcc190cf-cafb-0310-a4f2-bffc1f526a37 --- django/utils/encoding.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'django/utils/encoding.py') diff --git a/django/utils/encoding.py b/django/utils/encoding.py index dbd2c7a211..7e87b05c79 100644 --- a/django/utils/encoding.py +++ b/django/utils/encoding.py @@ -1,8 +1,15 @@ import types import urllib import datetime + from django.utils.functional import Promise +try: + from decimal import Decimal +except ImportError: + from django.utils._decimal import Decimal # Python 2.3 fallback + + class DjangoUnicodeDecodeError(UnicodeDecodeError): def __init__(self, obj, *args): self.obj = obj @@ -41,7 +48,7 @@ def force_unicode(s, encoding='utf-8', strings_only=False, errors='strict'): If strings_only is True, don't convert (some) non-string-like objects. """ - if strings_only and isinstance(s, (types.NoneType, int, long, datetime.datetime, datetime.date, datetime.time, float)): + if strings_only and isinstance(s, (types.NoneType, int, long, datetime.datetime, datetime.date, datetime.time, float, Decimal)): return s try: if not isinstance(s, basestring,): -- cgit v1.3