diff --git a/django/template/defaulttags.py b/django/template/defaulttags.py index 6daf234d12..da29c7eaba 100644 --- a/django/template/defaulttags.py +++ b/django/template/defaulttags.py @@ -498,11 +498,11 @@ class WidthRatioNode(Node): value = float(value) max_value = float(max_value) ratio = (value / max_value) * max_width + result = str(int(round(ratio))) except ZeroDivisionError: return '0' - except (ValueError, TypeError): + except (ValueError, TypeError, OverflowError): return '' - result = str(int(round(ratio))) if self.asvar: context[self.asvar] = result diff --git a/tests/template_tests/tests.py b/tests/template_tests/tests.py index 8e73e91693..9cd29f8fa5 100644 --- a/tests/template_tests/tests.py +++ b/tests/template_tests/tests.py @@ -1668,6 +1668,8 @@ class TemplateTests(TestCase): 'widthratio18': ('{% widthratio a b 100 as %}', {}, template.TemplateSyntaxError), 'widthratio19': ('{% widthratio a b 100 not_as variable %}', {}, template.TemplateSyntaxError), + 'widthratio20': ('{% widthratio a b 100 %}', {'a': float('inf'), 'b': float('inf')}, ''), + 'widthratio21': ('{% widthratio a b 100 %}', {'a': float('inf'), 'b': 2}, ''), ### WITH TAG ######################################################## 'with01': ('{% with key=dict.key %}{{ key }}{% endwith %}', {'dict': {'key': 50}}, '50'),