繁体   English   中英

Django Templates List的第一个元素

[英]Django Templates First element of a List

我将字典传递给我的Django模板,

字典和模板是这样的 -

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 %}

现在docsuserdocs类型的列表。 即是一个实例。 所以first过滤器会返回此实例。 从这里我需要提取它的id 我怎么做?

我试过{{ v.docs|first }}.id和其他各种徒劳的试验。

您可以使用{% with %}模板标签进行此类操作。

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

你可以试试这个:

{{ v.docs.0 }}

arr.0

你可以通过索引(元素012 ,等等)。

我不知道这是否有用..

你想要的是iterable(v.docs)的第一个值,你正在迭代另一个封装的iterable(列表)。

对于计数,我会做同样的事情,但是对于第一个元素..我将单独遍历v.doc并通过内部循环检索第一个值。

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

注意:第一个过滤器适用于v.docs,而不是doc。 是啊。 它涉及另一个循环:(

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM