Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/277.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在Jinja模板(Django框架)中检查一个数字是否可被另一个数字整除_Python_Django_Django Templates - Fatal编程技术网

Python 如何在Jinja模板(Django框架)中检查一个数字是否可被另一个数字整除

Python 如何在Jinja模板(Django框架)中检查一个数字是否可被另一个数字整除,python,django,django-templates,Python,Django,Django Templates,我试图检查网页中Jinja模板inside for loop中的一个简单条件,即一个数字是否可以被三整除。 我参考了以下链接 (注意loop.index对我不起作用forloop.counter起作用) 代码是 {% extends "header.html" %} {% block content %} <h1>List of all Reference Ids</h1> <table class="table table-striped">

我试图检查网页中Jinja模板inside for loop中的一个简单条件,即一个数字是否可以被三整除。 我参考了以下链接 (注意loop.index对我不起作用forloop.counter起作用)

代码是

{% extends "header.html" %}
{% block content %}
    <h1>List of all Reference Ids</h1>
    <table class="table table-striped">
        {% for master in  object_list %}
            {%  if forloop.counter divisibleby 3 %}
                 Do something
            {%endif%}
            <td> <a href="/data/{{ master.id }}"> {{ master.reference_id }} </a></td>
       {% endfor %}
    </table>
{% endblock %}
但什么都不管用。我不知道我在哪里犯了错误。请帮帮我,伙计们,我陷入这个问题已经很久了

template_string = """
{% for i in [1,2,3,4,5,6,7] %}
  {% if loop.index %3 == 0%}3{%else%}0{%endif%}\n
{% endfor %}
"""

from jinja2 import Template

print Template(template_string).render()
虽然听起来您使用的是django模板而不是jinja

如果这是DjangoTemplateLanguage那么

{% if forloop.counter0|divisibleby:3 %}
应该可以工作(我认为…),所以这里是djangoTemplate等价物,它可以独立运行

from django.template import Template, Context
from django.template.engine import Engine

from django.conf import settings
settings.configure(DEBUG=False)

template_string = """
{% for i in the_list %}
  {% if forloop.counter|divisibleby:3 %}3{%else%}0{%endif%}\n
{% endfor %}
"""
print Template(template_string).render(Context({"the_list":[1,2,3,4,5,6,7]}))

演示如何执行此操作:
{%if loop.index可被3%整除}
。如果
loop.index
不起作用,但
forloop.counter
起作用,则Django将您的模板视为Django模板,而不是Jinja模板。如果您需要帮助修复此问题,则需要发布视图和
模板设置。请尝试以下操作:
{%If-forloop.counter可由3%}
{%If-forloop.counter可由(3)%}
整除。我仍然在If表达式结尾处收到未使用的“is”错误。对于
{%if-forloop.counter是可除的3%}或{%if-forloop.counter是可除的(3)%}
它仍然不工作。我刚开始学习django框架,所以我对模板也有点困惑。我遵循的教程声称它是一个Jinja模板。您必须在django项目的settings.py中指定它。。。如果您没有明确设置它,那么您使用的是django模板语言(您可能需要
forloop.counter
而不是
forloop.counter0
from django.template import Template, Context
from django.template.engine import Engine

from django.conf import settings
settings.configure(DEBUG=False)

template_string = """
{% for i in the_list %}
  {% if forloop.counter|divisibleby:3 %}3{%else%}0{%endif%}\n
{% endfor %}
"""
print Template(template_string).render(Context({"the_list":[1,2,3,4,5,6,7]}))