Python 如何在Jinja模板(Django框架)中检查一个数字是否可被另一个数字整除
我试图检查网页中Jinja模板inside for loop中的一个简单条件,即一个数字是否可以被三整除。 我参考了以下链接 (注意loop.index对我不起作用forloop.counter起作用) 代码是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">
{% 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]}))