Django模板Lis的第一个元素

2024-06-25 23:28:48 发布

您现在位置:Python中文网/ 问答频道 /正文

我把字典传给我的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 %}

现在docs是一个userdocs类型的列表。i、 是一个例子。所以first过滤器返回这个实例。从中我需要提取它是id。我该怎么做?

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


Tags: djangoname模板iddocs字典orderli
3条回答

我不知道这是否有用。。

您需要的是iterable(v.docs)的第一个值,并且您正在迭代另一个封装iterable(list)。

对于伯爵,我也会这么做,但是对于第一个元素。。 我将逐个迭代v.docs并通过 一个内环。

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

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

你可以试试这个:

{{ v.docs.0 }}

就像arr.0

可以通过索引(012等)获取元素。

您可以使用{% with %}templatetag来完成这类工作。

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

相关问题 更多 >