Kaydet (Commit) d0b44c44 authored tarafından Roger Gammans's avatar Roger Gammans Kaydeden (comit) Tim Graham

Fixed #29060 -- Made {% firstof %} assign '' to the asvar if all inputs are false.

üst 8dc675d9
......@@ -118,15 +118,16 @@ class FirstOfNode(Node):
self.asvar = asvar
def render(self, context):
first = ''
for var in self.vars:
value = var.resolve(context, ignore_failures=True)
if value:
first = render_value_in_context(value, context)
if self.asvar:
context[self.asvar] = first
return ''
return first
return ''
break
if self.asvar:
context[self.asvar] = first
return ''
return first
class ForNode(Node):
......
......@@ -82,3 +82,10 @@ class FirstOfTagTests(SimpleTestCase):
output = self.engine.render_to_string('firstof15', ctx)
self.assertEqual(ctx['myvar'], '2')
self.assertEqual(output, '')
@setup({'firstof16': '{% firstof a b c as myvar %}'})
def test_all_false_arguments_asvar(self):
ctx = {'a': 0, 'b': 0, 'c': 0}
output = self.engine.render_to_string('firstof16', ctx)
self.assertEqual(ctx['myvar'], '')
self.assertEqual(output, '')
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment