Jinja:如何获得两个值的最大值

发布于 2025-02-10 00:26:09 字数 339 浏览 1 评论 0原文

在列表分页中,我想在其之前和之后用两个页面渲染当前页面,但它不是零或一个页面。我尝试过:

    {% for p in range(max(1, list.cur_page - 2), min(list.cur_page + 2, list.pages)) %}
    <li class="page-item"><a class="page-link" href="{{ list.url }}/{{ p }}">{{ p }}</a></li>   

但是它不认识到最小和最大,我知道有一个名为min max的过滤器,但是我该如何在这里应用?

in a list pagination, I want to render the current page with two pages before and after it, providing it's not zero or one. I tried:

    {% for p in range(max(1, list.cur_page - 2), min(list.cur_page + 2, list.pages)) %}
    <li class="page-item"><a class="page-link" href="{{ list.url }}/{{ p }}">{{ p }}</a></li>   

But it doesn't recognize min and max, I know that there is a filter named min max but how can I apply it here?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

吝吻 2025-02-17 00:26:09

看来我可以使用minmax range> range参数,

range([list.cur_page - 2, 2] | max, ...)

所以我有:

{% if list.pages > 1 %}
  <ul class="pagination float-start flex-wrap ms-5">
    {{ render_button(list, 1) }}
    {% for p in range([list.cur_page - 2, 2] | max, [list.cur_page + 3, list.pages - 1] | min ) %}
    {{ render_button(list, p) }}
    {% endfor %}
    {{ render_button(list, list.pages) }}
  </ul>
{% endif %}

It seems I can use min and max filters in range parameters,

range([list.cur_page - 2, 2] | max, ...)

so I have:

{% if list.pages > 1 %}
  <ul class="pagination float-start flex-wrap ms-5">
    {{ render_button(list, 1) }}
    {% for p in range([list.cur_page - 2, 2] | max, [list.cur_page + 3, list.pages - 1] | min ) %}
    {{ render_button(list, p) }}
    {% endfor %}
    {{ render_button(list, list.pages) }}
  </ul>
{% endif %}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文