template examples bootstrap python django django-templates django-filters

python - examples - Plantillas Django Primer elemento de una lista



template web django (3)

Le paso un diccionario a mi plantilla Django,

Diccionario y plantilla es así -

lists[listid] = {''name'': l.listname, ''docs'': l.userdocs.order_by(''-id'')} {% for k, v in lists.items %} <ul><li>Count: {{ v.docs.count }}, First: {{ v.docs|first }}</li></ul> {% endfor %}

Ahora docs es una lista de tipo userdocs . Es decir, es una instancia. Así que el first filtro me devuelve esta instancia. De esto necesito extraer su id . ¿Cómo puedo hacer eso?

{{ v.docs|first }}.id y varios otros ensayos inútiles.


No sé si esto es útil ...

Lo que desea es el primer valor de un iterable (v.docs) y está iterando sobre otro encapsulado iterable (listas).

Para el recuento, haría lo mismo, pero para el primer elemento ... iteraría sobre v.docs individualmente y recuperaría el primer valor a través de un bucle interno.

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

Nota: el primer filtro se aplica a v.docs, no a doc. Sí. Se trata de otro bucle :(


Puede usar el {% with %} templatetag para este tipo de cosas.

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


Puedes probar esto:

{{ v.docs.0 }}

Como arr.0

Puede obtener elementos por índice ( 0 , 1 , 2 , etc.).