Skip to content Skip to sidebar Skip to footer

Django Templates First Element Of A List

I pass a dictionary to my Django Template, Dictionary & Template is like this - lists[listid] = {'name': l.listname, 'docs': l.userdocs.order_by('-id')} {% for k, v in lists

Solution 1:

You can try this:

{{ v.docs.0 }}

Like arr.0

You can get elements by index (0, 1, 2, etc.).

Solution 2:

You can use the {% with %} templatetag for this sort of thing.

{% with v.docs|first as first_doc %}{{ first_doc.id }}{% endwith %}

Solution 3:

I don't know if this is helpful..

What you want is the first value of an iterable (v.docs) and you are iterating over another encapsulating iterable (lists).

For the count, I would do the same, but for the first element.. I'd iterate over the v.docs individually and retrieve the first value via an inner loop.

{% for doc in v.docs %}
    {% if v.docs | first %}  
    <li>doc</li>
    {% endif %}
{% endfor %}

Note: the first filter is applied to v.docs , not doc. Yeah. It involves another loop :(

Post a Comment for "Django Templates First Element Of A List"