我有一个Django模板,我有时想传递一个列表,有时想传递一个值。模板如何判断它被赋予了什么?
我认为价值会像其中一样设定:
context = {
'foo' : 'bar
}
或:
context = {
'foo' : ['bar', 'bat', 'baz']
}
然后,模板的代码看起来像这样:
{% if foo isa list %}
{% for item in foo %}
{{ item }}<br>
{% endfor %}
{% else %}
{{ item}}<br>
{% endif %}
例如,我可以将其设置为foo或foolist,并检查其中一个。但是,只要有一个列表或者不是foo,它会更好(imo)。
答案 0 :(得分:0)
我认为你的方法是不必要的复杂。 我会选择一个清单:
<强> views.py 强>
foo_list = ['bar']
context = {
'foo': foo_list,
'foo_len': len(foo_list),
}
<强>模板强>
{% if foo_len == 1 %}
{{ foo.0 }}
{% else %}
{% for item in foo %}
{{ item }}
{% endfor %}
{% endif %}
答案 1 :(得分:0)
如果您打算这样做,那么只需添加一个检查,它没有format
(如果是字符串)方法并且有0
索引,如果是,那么它的a列表其他被认为是单值
{% if foo.0 and not foo.format %}
{% for item in foo %}
{{ item }}<br>
{% endfor %}
{% else %}
{{ item}}<br>
{% endif %}