Django Templates List的第一个元素

问题描述 投票:22回答:3

我将字典传递给我的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和其他各种无用的试验。

python django django-templates django-filters
3个回答
51
投票

你可以使用qazxsw poi模板标签来做这类事情。

{% with %}

36
投票

你可以试试这个:

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

{{ v.docs.0 }}

你可以按索引获取元素(arr.001等)。


5
投票

我不知道这是否有用..

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

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

2

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

© www.soinside.com 2019 - 2024. All rights reserved.