Commit 50ecd753 authored by Malcolm Tredinnick's avatar Malcolm Tredinnick
Browse files

Fixed #6492 -- Added bullet-proofing to isValidFloat validator. Thanks, Bastian Kleineidam.


git-svn-id: http://code.djangoproject.com/svn/django/trunk@7258 bcc190cf-cafb-0310-a4f2-bffc1f526a37
parent 30bdabb2
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -18,7 +18,7 @@ except ImportError:
from django.conf import settings
from django.utils.translation import ugettext as _, ugettext_lazy, ungettext
from django.utils.functional import Promise, lazy
from django.utils.encoding import force_unicode
from django.utils.encoding import force_unicode, smart_str

_datere = r'\d{4}-\d{1,2}-\d{1,2}'
_timere = r'(?:[01]?[0-9]|2[0-3]):[0-5][0-9](?::[0-5][0-9])?'
@@ -451,7 +451,7 @@ class IsValidDecimal(object):
                "Please enter a valid decimal number with at most %s decimal places.", self.decimal_places) % self.decimal_places

def isValidFloat(field_data, all_data):
    data = str(field_data)
    data = smart_str(field_data)
    try:
        float(data)
    except ValueError:
+7 −1
Original line number Diff line number Diff line
# coding: utf-8
"""
27. Default manipulators

@@ -21,7 +22,7 @@ class Album(models.Model):
    def __unicode__(self):
        return self.name

__test__ = {'API_TESTS':"""
__test__ = {'API_TESTS':u"""
>>> from django.utils.datastructures import MultiValueDict

# Create a Musician object via the default AddManipulator.
@@ -88,4 +89,9 @@ True
<Album: Ultimate Ella>
>>> a2.release_date
datetime.date(2005, 2, 13)

# Test isValidFloat Unicode coercion
>>> from django.core.validators import isValidFloat, ValidationError
>>> try: isValidFloat(u"ä", None)
... except ValidationError: pass
"""}