【问题标题】:Jinja2 Get the first item in a sorted listJinja2 获取排序列表中的第一项
【发布时间】:2021-02-26 00:01:22
【问题描述】:

我目前正在使用 Jinja2 在我的网页上显示评论(取自数据库),我偶然发现了 sort() 过滤器。所以我写了一些代码来按最低评分对评论进行排序。

{% for reviews in reviews.all()|sort(attribute='rating', reverse=false) %}
    {{ reviews.text }}
    {{ reviews.rating }}
{% endfor %}

上面的代码有效,但现在我想从列表中获取第一个排序的项目(reviews.text、reviews.rating)。我尝试使用:

{{ reviews.text[0] }}
{{ reviews.rating[0] }}

但这只会返回第一个字符。我也尝试使用|first 过滤器,但这也不起作用。

很抱歉,这似乎是一个愚蠢的问题 - 我仍在处理 Jinja2 - 但有什么方法可以从我的列表中挑选出第一个排序的项目?

【问题讨论】:

    标签: python-3.x flask jinja2


    【解决方案1】:

    好的,解决方案很简单(请耐心等待):Jinja2 有一个 list of control structures,其中一个是 loop.first,可以在这种情况下使用。

    {% for reviews in reviews.all()|sort(attribute='rating', reverse=false) %}
        {% if loop.first %}
           {{ reviews.text }}
           {{ reviews.rating }}
        {% endif %}
    {% endfor %}
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-09-30
      • 2016-05-18
      • 2018-03-06
      • 2011-01-30
      • 1970-01-01
      • 2011-11-21
      • 2021-09-06
      相关资源
      最近更新 更多