【问题标题】:How to select first item in a list如何选择列表中的第一项
【发布时间】:2014-12-06 13:37:55
【问题描述】:

我有以下清单:

{% for upcomming_gig in upcomming_gigs %}
{% with gig=upcomming_gig.gig %}

...

{% endfor %}
{% endif %}

这最终打印了gig 记录的整个列表。如何只选择列表中的第一个?

我已经按照https://stackoverflow.com/a/26144595/2429989 尝试过{% with gig=upcomming_gig.gig.0 %},但结果是没有数据...?

【问题讨论】:

  • 只用{{ upcoming_gig.0 }}?不太清楚为什么你想要循环或 with 那里......你可能还想重新考虑标签,它可能是 python&django 或 python/flask/jinja ......除非你将 jinja 与 django 一起使用,但我我猜不是……
  • 听起来你有一个字典列表,然后键gig 是一个演出列表,对吗?你用的是django模板还是flask+jinja?
  • 你能打印 upcomming_gigs

标签: python django flask jinja2


【解决方案1】:

最好在服务器端做这些事情,但我猜(没试过)这对 django 有用,对 Jinja 一无所知

{% for upcomming_gig in upcomming_gigs %}
    {% if forloop.first %}
    {# or loop.first for Jinja as Ilendi mentioned below #}
        ...
    {% endif %}
{% endfor %}

>> More variables >>

编辑

我刚刚看到您链接到的问题,您使用upcomming_gig 而不是upcomming_gigs 编写(注意最后的s)。试试这个:

{% if upcomming_gigs %}
    {% with gig=upcomming_gigs.0.gig %} # Instead of gig=upcomming_gigs.gig.0
        ...
    {% endwith %}
{% endif %}

【讨论】:

  • 您的第一个答案几乎是正确的!如果您编写“if loop.first”而不是“if forloop.first”,则 if 条件中的测试有效。
  • @Ilendir 来源?是明确指出forloop.firsthere
  • 这个问题没有明确说明是否应该使用 Django 或 Jinja。 forloop.first 在 Jinja 中不起作用,但 loop.first 可以。我想我应该更清楚地说明我指的是 Jinja。
  • 哦,我在回答中添加了这一点。谢谢!
猜你喜欢
  • 1970-01-01
  • 2014-11-26
  • 2012-03-21
  • 2011-12-25
  • 2012-03-25
  • 1970-01-01
  • 2012-03-18
  • 2014-06-20
  • 1970-01-01
相关资源
最近更新 更多