我将字典传递给我的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
类型的列表。即是一个实例。所以first
过滤器会返回此实例。由此我需要提取它id
。我该怎么做?
我试过了
{{ v.docs|first }}.id
和其他各种徒劳的试验。
答案 0 :(得分:51)
您可以使用{% with %}
模板标签进行此类操作。
{% with v.docs|first as first_doc %}{{ first_doc.id }}{% endwith %}
答案 1 :(得分:36)
你可以试试这个:
{{ v.docs.0 }}
赞arr.0
您可以按索引(0
,1
,2
等获取元素。)
答案 2 :(得分:5)
我不知道这是否有用..
你想要的是可迭代的第一个值(v.docs),你正在迭代另一个封装的iterable(列表)。
对于计数,我也会这样做,但对于第一个元素.. 我将单独遍历v.doc并检索第一个值 内循环。
{% for doc in v.docs %}
{% if v.docs | first %}
<li>doc</li>
{% endif %}
{% endfor %}
注意:第一个过滤器适用于v.docs,而不是doc。 是啊。它涉及另一个循环:(