【问题标题】:Error in the template with Django : can I make arithmetic in if statementDjango 模板中的错误:我可以在 if 语句中进行算术运算吗
【发布时间】:2014-10-25 16:46:50
【问题描述】:

我想用 Bootstrap 进行分页:数据中每 10 个新字段一个新页面。

文件.html

{% for d in data %}
    {% if forloop.first %}
      <ul class="pagination">
    {% endif %}
    {% if (forloop.counter % 10) == 0 %}
        <li><a href="#{{ forloop.counter }}">{{ forloop.counter % 10 }}</a></li>
    {% endif %}
    {% if forloop.last %}
        </ul>
    {% endif %}
{% endfor %}

输出我想要 => Bootstrap pagination

但是 Django 给了我一个错误: {% if (forloop.counter % 10) == 0 %} 模板语法错误:/

除了创建自己的过滤器或添加过滤器,我不知道该怎么做,但我想先知道我是否可以先在模板中做。

PS:我使用的是 Django 1.5,无法升级。

编辑:

最后我使用了这个条件:

{% if forloop.counter|divisibleby:'10' and forloop.counter|divisibleby:'5' and forloop.counter|divisibleby:'2' %}

就像我知道当我有 10 个倍数一样。

【问题讨论】:

  • 使用分页器比自己发明轮子要容易得多,from django.core.paginator import Paginator ...

标签: python django twitter-bootstrap python-2.7 django-templates


【解决方案1】:

模数 (%) 运算符在 django 模板中不可用。但是,您可以使用 divisibleby (https://docs.djangoproject.com/en/1.5/ref/templates/builtins/#divisibleby) 模板过滤器,例如

{% if forloop.counter|divisibleby:"2" %}

【讨论】:

  • 谢谢,我会那样看的。
【解决方案2】:

使用分页器,您的 QuerySet 不会针对孔表进行评估,只是构建页面所需的数字,它提供了您可以在模板中使用的属性,例如(page_range、next_page_number、has_next 等) 这是 BootStrap 2 和 django.core.paginator 的代码:

   <div class="pagination pagination-centered">
        <ul>
            {% if MYDATAENTIRES.has_previous %}
                <li>
                    <a href="?page={{ MYDATAENTIRES.previous_page_number }}">{% trans "Précédent" %}</a>
                </li>
            {% endif %}
            {% for i in MYDATAENTIRES.paginator.page_range %}
              <li {% ifequal MYDATAENTIRES.number i %} {{ 'class="disabled"' }} {% endifequal %}>
                  <a href="?page={{ i }}">
                    {{ i }}
                  </a>
              </li>     
            {% endfor %}
            {% if MYDATAENTIRES.has_next %}
                <li>
                    <a href="?page={{ MYDATAENTIRES.next_page_number }}">{% trans "Suivant" %}</a>
                </li>
            {% endif %}
        </ul>
    </div>

【讨论】:

    猜你喜欢
    • 2012-01-08
    • 2019-05-22
    • 1970-01-01
    • 2020-09-17
    • 2011-04-30
    • 1970-01-01
    • 2016-04-12
    • 2011-10-24
    • 2018-10-16
    相关资源
    最近更新 更多