Fixed #4123 -- Changed the firstof template tag to correctly handle a literal
string as its last argument. Thanks, Wesley Fok and Matt Boersma. git-svn-id: http://code.djangoproject.com/svn/django/trunk@6571 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
parent
8a3cf46e60
commit
b678601df3
|
@ -517,8 +517,14 @@ def firstof(parser, token):
|
||||||
{% endif %}{% endif %}{% endif %}
|
{% endif %}{% endif %}{% endif %}
|
||||||
|
|
||||||
but obviously much cleaner!
|
but obviously much cleaner!
|
||||||
|
|
||||||
|
You can also use a literal string as a fallback value in case all
|
||||||
|
passed variables are False::
|
||||||
|
|
||||||
|
{% firstof var1 var2 var3 "fallback value" %}
|
||||||
|
|
||||||
"""
|
"""
|
||||||
bits = token.contents.split()[1:]
|
bits = token.split_contents()[1:]
|
||||||
if len(bits) < 1:
|
if len(bits) < 1:
|
||||||
raise TemplateSyntaxError, "'firstof' statement requires at least one argument"
|
raise TemplateSyntaxError, "'firstof' statement requires at least one argument"
|
||||||
return FirstOfNode(bits)
|
return FirstOfNode(bits)
|
||||||
|
|
|
@ -476,6 +476,11 @@ This is equivalent to::
|
||||||
{{ var3 }}
|
{{ var3 }}
|
||||||
{% endif %}{% endif %}{% endif %}
|
{% endif %}{% endif %}{% endif %}
|
||||||
|
|
||||||
|
You can also use a literal string as a fallback value in case all
|
||||||
|
passed variables are False::
|
||||||
|
|
||||||
|
{% firstof var1 var2 var3 "fallback value" %}
|
||||||
|
|
||||||
for
|
for
|
||||||
~~~
|
~~~
|
||||||
|
|
||||||
|
|
|
@ -341,7 +341,10 @@ class Templates(unittest.TestCase):
|
||||||
'firstof03': ('{% firstof a b c %}', {'a':0,'b':2,'c':0}, '2'),
|
'firstof03': ('{% firstof a b c %}', {'a':0,'b':2,'c':0}, '2'),
|
||||||
'firstof04': ('{% firstof a b c %}', {'a':0,'b':0,'c':3}, '3'),
|
'firstof04': ('{% firstof a b c %}', {'a':0,'b':0,'c':3}, '3'),
|
||||||
'firstof05': ('{% firstof a b c %}', {'a':1,'b':2,'c':3}, '1'),
|
'firstof05': ('{% firstof a b c %}', {'a':1,'b':2,'c':3}, '1'),
|
||||||
'firstof06': ('{% firstof %}', {}, template.TemplateSyntaxError),
|
'firstof06': ('{% firstof a b c %}', {'b':0,'c':3}, '3'),
|
||||||
|
'firstof07': ('{% firstof a b "c" %}', {'a':0}, 'c'),
|
||||||
|
'firstof08': ('{% firstof a b "c and d" %}', {'a':0,'b':0}, 'c and d'),
|
||||||
|
'firstof09': ('{% firstof %}', {}, template.TemplateSyntaxError),
|
||||||
|
|
||||||
### FOR TAG ###############################################################
|
### FOR TAG ###############################################################
|
||||||
'for-tag01': ("{% for val in values %}{{ val }}{% endfor %}", {"values": [1, 2, 3]}, "123"),
|
'for-tag01': ("{% for val in values %}{{ val }}{% endfor %}", {"values": [1, 2, 3]}, "123"),
|
||||||
|
|
Loading…
Reference in New Issue