首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Django模板列表的第一个元素

Django模板列表的第一个元素
EN

Stack Overflow用户
提问于 2010-11-26 23:19:41
回答 3查看 44.4K关注 0票数 34

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

字典和模板是这样的-

代码语言:javascript
复制
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和其他各种徒劳无功的试验。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-11-26 23:22:27

您可以使用{% with %}模板标签来处理这类事情。

代码语言:javascript
复制
{% with v.docs|first as first_doc %}{{ first_doc.id }}{% endwith %}
票数 58
EN

Stack Overflow用户

发布于 2015-04-03 21:19:45

您可以尝试这样做:

代码语言:javascript
复制
{{ v.docs.0 }}

arr.0一样

您可以按索引(012等)获取元素。

票数 66
EN

Stack Overflow用户

发布于 2013-07-07 01:02:34

我不知道这是不是有用..

您需要的是可迭代对象(v.docs)的第一个值,并且您正在迭代另一个封装可迭代对象(列表)。

对于计数,我也会这样做,但对于第一个元素..我将逐个迭代v.docs,并通过内部循环检索第一个值。

代码语言:javascript
复制
{% for doc in v.docs %}
    {% if v.docs | first %}  
    <li>doc</li>
    {% endif %}
{% endfor %}

注意:第一个筛选器应用于v.docs,而不是doc。嗯。它涉及到另一个循环:(

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4286461

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档