2011-01-19 10 views

Odpowiedz

49

Dzięki wszystkim pomóc, to prowadzi m e do zrozumienia, że ​​mogę użyć with tag.

{% with list|last as last %} 
    {{ last.key }} 
{% endwith %} 
+0

Działa również z plasterkiem, jeśli chcesz coś innego niż ostatni element: '{% with list | slice:": - 2 "as my_var%}' – Jake

+3

Błąd: indeksowanie negatywne nie jest obsługiwane. Django v.1.7 –

+0

czy działa w jinja2? –

1
+0

Czy istnieje sposób, aby wziąć wynik kawałek i zdobądź klucz? – Jake

+0

Ah ha! Tak, jest, z tagiem! – Jake

-3

Zastosowanie ten kawałek kodu w szablonie:

{{ list|slice:":-1".items.0.0 }} 
+2

'{{list | slice:": - 1 ".key}}' => 'Nie można przeanalizować pozostałej części: '.key' z 'list | slice:": - 1 ".key'' – Jake

+0

Użyj kodu ze zmodyfikowanej odpowiedzi. – ikostia

+1

Nie można przeanalizować pozostałej części: '.items.0.0' z 'list | slice: ": - 1" .items.0.0' – Jake

23

użyć tagu last szablon:

{{ value|last }} 

If value is the list ['a', 'b', 'c', 'd'] , the output will be the string "d" .

+1

'{{list | last.key}}' => 'Nie można przeanalizować reszty: '.key' z 'list | last.key'' – Jake

+1

Spędziłem całe pół godziny, szukając tego. Dzięki! FYI to chyba jedyny sposób na zdobycie ostatniego elementu obiektu xrange w Pythonie 2. Filtry 'make_list' i' slice' i ich kombinacje zawodzą z różnych powodów. – makaveli

5

W moim przypadku mogę znaleźć tego rozwiązania: {{object_list.last.id}} bardzo użyteczny na ekspresję takiego: {% url 'my-url' object_list.first.id object_list.last.id %}

0

bez z, będą:

{% set last = list|last %} 
{{ last.key }} 
Powiązane problemy