我将一个字典传递给我的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
和其他各种徒劳无功的试验。
发布于 2010-11-26 23:22:27
您可以使用{% with %}
模板标签来处理这类事情。
{% with v.docs|first as first_doc %}{{ first_doc.id }}{% endwith %}
发布于 2015-04-03 21:19:45
您可以尝试这样做:
{{ v.docs.0 }}
像arr.0
一样
您可以按索引(0
、1
、2
等)获取元素。
发布于 2013-07-07 01:02:34
我不知道这是不是有用..
您需要的是可迭代对象(v.docs)的第一个值,并且您正在迭代另一个封装可迭代对象(列表)。
对于计数,我也会这样做,但对于第一个元素..我将逐个迭代v.docs,并通过内部循环检索第一个值。
{% for doc in v.docs %}
{% if v.docs | first %}
<li>doc</li>
{% endif %}
{% endfor %}
注意:第一个筛选器应用于v.docs,而不是doc。嗯。它涉及到另一个循环:(
https://stackoverflow.com/questions/4286461
复制相似问题