在视图中:
return render_to_response('template.html',
{'headers': list(sort_headers.headers()) },
context_instance=RequestContext(request))
在模板中:
{{ headers }}
<br />
{{ headers|slice:"1" }}
在浏览器中:
[{'url': '?ot=desc&o=0', 'text': 'Nombre', 'class_attr': ' class="sorted ascending"', 'sortable': True}, {'url': '?ot=asc&o=1', 'text': 'Valor', 'class_attr': '', 'sortable': True}, {'url': '?ot=asc&o=2', 'text': 'Inventario', 'class_attr': '', 'sortable': False}, {'url': '?ot=asc&o=3', 'text': 'Fecha Creacion', 'class_attr': '', 'sortable': True}]
[{'url': '?ot=desc&o=0', 'text': 'Nombre', 'class_attr': ' class="sorted ascending"', 'sortable': True}]
我得到一个带有{{ headers|slice:"1" }}
的列表节点,但是现在,如何获得一个dict值?例如,'url'返回'?ot=desc&o=0'
。
注意:不能使用{% for %}
。
答案 0 :(得分:7)
{{headers.1.url}}
来自http://docs.djangoproject.com/en/dev/topics/templates/#variables:
Technically, when the template system encounters a dot, it tries the following lookups, in this order: * Dictionary lookup * Attribute lookup * Method call * List-index lookup
因此,您可以执行{{headers.1}}而不是{{headers | slice:“1”}}。然后要访问网址密钥,您只需附加它:{{headers.1.url}}。
HTH。
答案 1 :(得分:0)
我不确定我理解你的问题但是要在模板中将值形成为dict,你可以使用方法项或值。
如果您使用 {{dict.items}} ,您将获得元组列表(键,值),您只需使用tuple.1即可获得该值。
如果您使用 {{dict.values}} ,您只需获取字典值的列表。
答案 2 :(得分:-1)
我想你想要:
{% with headers|slice:"1" as data %}
<a href="{{ data.url }}"{{ data.class_attr|safe }}>{{ data.text }}</a>
{% endwith %}