Ticket #3670: numeric.patch
File numeric.patch, 2.8 KB (added by , 18 years ago) |
---|
-
django/template/__init__.py
91 91 tag_re = re.compile('(%s.*?%s|%s.*?%s|%s.*?%s)' % (re.escape(BLOCK_TAG_START), re.escape(BLOCK_TAG_END), 92 92 re.escape(VARIABLE_TAG_START), re.escape(VARIABLE_TAG_END), 93 93 re.escape(COMMENT_TAG_START), re.escape(COMMENT_TAG_END))) 94 # matches if the string is valid number 95 number_re = re.compile('(\d+|\d*\.\d+)$') 94 96 95 97 # global dictionary of libraries that have been loaded using get_library 96 98 libraries = {} … … 632 634 633 635 (The example assumes VARIABLE_ATTRIBUTE_SEPARATOR is '.') 634 636 """ 635 if path[0].isdigit():637 if number_re.match(path): 636 638 number_type = '.' in path and float or int 637 try: 638 current = number_type(path) 639 except ValueError: 640 current = settings.TEMPLATE_STRING_IF_INVALID 639 current = number_type(path) 641 640 elif path[0] in ('"', "'") and path[0] == path[-1]: 642 641 current = path[1:-1] 643 642 else: -
tests/regressiontests/templates/tests.py
401 401 'ifequal-split09': (r"{% ifequal a 'slash\man' %}yes{% else %}no{% endifequal %}", {'a': r"slash\man"}, "yes"), 402 402 'ifequal-split10': (r"{% ifequal a 'slash\man' %}yes{% else %}no{% endifequal %}", {'a': r"slashman"}, "no"), 403 403 404 # NUMERIC RESOLUTION 405 'ifequal-numeric01': ('{% ifequal x 5 %}yes{% endifequal %}', {'x': '5'}, ''), 406 'ifequal-numeric02': ('{% ifequal x 5 %}yes{% endifequal %}', {'x': 5}, 'yes'), 407 'ifequal-numeric03': ('{% ifequal x 5.2 %}yes{% endifequal %}', {'x': 5}, ''), 408 'ifequal-numeric04': ('{% ifequal x 5.2 %}yes{% endifequal %}', {'x': 5.2}, 'yes'), 409 'ifequal-numeric05': ('{% ifequal x 0.2 %}yes{% endifequal %}', {'x': .2}, 'yes'), 410 'ifequal-numeric06': ('{% ifequal x .2 %}yes{% endifequal %}', {'x': .2}, 'yes'), 411 'ifequal-numeric07': ('{% ifequal x 2. %}yes{% endifequal %}', {'x': 2}, ''), 412 'ifequal-numeric08': ('{% ifequal x "5" %}yes{% endifequal %}', {'x': 5}, ''), 413 'ifequal-numeric09': ('{% ifequal x "5" %}yes{% endifequal %}', {'x': '5'}, 'yes'), 414 404 415 ### IFNOTEQUAL TAG ######################################################## 405 416 'ifnotequal01': ("{% ifnotequal a b %}yes{% endifnotequal %}", {"a": 1, "b": 2}, "yes"), 406 417 'ifnotequal02': ("{% ifnotequal a b %}yes{% endifnotequal %}", {"a": 1, "b": 1}, ""),