2009-09-29 165 views
3

獲取列表值鑑於:在Django模板

return render_to_response('template.html', 
          {'headers': list(sort_headers.headers()) }, 
          context_instance=RequestContext(request)) 

模板:

{{ headers }} 
<br /> 
{{ headers|slice:"1" }} 

在瀏覽器:

[{'url': '?ot=desc&amp;o=0', 'text': 'Nombre', 'class_attr': ' class="sorted ascending"', 'sortable': True}, {'url': '?ot=asc&amp;o=1', 'text': 'Valor', 'class_attr': '', 'sortable': True}, {'url': '?ot=asc&amp;o=2', 'text': 'Inventario', 'class_attr': '', 'sortable': False}, {'url': '?ot=asc&amp;o=3', 'text': 'Fecha Creacion', 'class_attr': '', 'sortable': True}] 

[{'url': '?ot=desc&amp;o=0', 'text': 'Nombre', 'class_attr': ' class="sorted ascending"', 'sortable': True}] 

我得到{{ headers|slice:"1" }}列表節點,但現在,如何獲得字典值?例如'url'返回'?ot=desc&amp;o=0'

注意:不能使用{% for %}

回答

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

,而不是{{頭所以,|片:」 1「}}你可以做{{headers.1}}。然後訪問url密鑰,您只需追加它:{{headers.1.url}}。

HTH。

+0

是的,是的。謝謝。 – panchicore 2009-09-30 14:49:48

0

我不確定我是否理解你的問題,但要在模板中使用方法項或值的值來形成一個字典。

如果您使用{{dict.items}}您將得到一個元組列表(鍵值),您可以簡單地使用tuple.1獲取該值。

如果您使用{{dict.values}}您只需獲取字典值的列表。

-1

我想你想:

{% with headers|slice:"1" as data %} 
<a href="{{ data.url }}"{{ data.class_attr|safe }}>{{ data.text }}</a> 
{% endwith %}