Python 如何检查循环是否处于中间值

Python 如何检查循环是否处于中间值,python,html,django,Python,Html,Django,我在django模板的forloop中获取中间循环时遇到问题 我试过使用 {% for value in key.dictionary %} {% if forloop.counter == widthratio value|length 2 1 %} 但没有效果。实际上,在widthratio之后,我得到了一个错误Expected%} 计算除法是从这篇文章中获得的宽度比率不是一个过滤器,它是一个标签。但是您可以使用as将宽度比的结果分配给变量: {%widthratio键.字典|长度

我在django模板的forloop中获取中间循环时遇到问题

我试过使用

{% for value in key.dictionary %}
    {% if forloop.counter == widthratio value|length 2 1 %}
但没有效果。实际上,在
widthratio
之后,我得到了一个错误
Expected%}


计算除法是从这篇文章中获得的

宽度比率
不是一个过滤器,它是一个标签。但是您可以使用
as
宽度比的结果分配给变量:

{%widthratio键.字典|长度2 1作为中点%}
{%表示键,值位于key.dictionary.items%}
{%if-forloop.counter==中点|添加:“0”%}
widthratio
生成一个字符串,因此为了测试forloop.counter
值是否等于整数,我们必须使用

请注意,我们使用字典的长度,而不是单个键的长度。在上面的示例中,我还选择循环字典项(键和值)

演示:


value
是字典中的一个键,因此它的长度将完全是错误的值。
>>> from django.template import Context, Template
>>> t = Template("""\
... {% widthratio foo|length 2 1 as midpoint %}
... {% for key, value in foo.items %}
...     {% if forloop.counter = midpoint|add:"0" %}Half-way through!{% endif %}
...     {{ forloop.counter }}: {{ key }} == {{ value }}
... {% endfor %}
... """)
>>> context = Context({"foo": {"spam": 42, "vikings": 17, "eggs": 81}})
>>> print(t.render(context))



    1: spam == 42

    Half-way through!
    2: vikings == 17


    3: eggs == 81