For loop django-如何通过循环的模板将计数器添加到{{}标记中

For loop django-如何通过循环的模板将计数器添加到{{}标记中,for-loop,django-templates,For Loop,Django Templates,views.py: def main(request): users = PUser.objects.filter(ostan=os, shahr=sh, content_id=content) return render(request, 'main.html', {'users': users}) 在main.html文件中: <a href="#">{{ users.0.website }}</a> . . . <a href="#">

views.py:

def main(request):
    users = PUser.objects.filter(ostan=os, shahr=sh, content_id=content)
    return render(request, 'main.html', {'users': users})
在main.html文件中:

<a href="#">{{ users.0.website }}</a>
.
.
.
<a href="#">{{ users.1.website }}</a>
.
.
.
<a href="#">{{ users.2.website }}</a>
.
.
.
<a href="#">{{ users.3.website }}</a>
要查看views.py并编辑main.html,请执行以下操作:

{% for each in numbers %}
    <a href="#">{{ users.0.website }}</a>
{% enfor %}
{%表示数字%}
{%enfor%}
但是我不知道如何编辑
{{users.0.website}}
部分


我尝试了
{{users.each.website}}
,但它没有打印任何内容。我应该如何更改它?

{{{users.each.website}}
所做的是,它在名为
users
的变量中存储的
dict
中搜索
字符串类型的
关键字
“each”
。因此,不是名为
each
的变量中的值,该变量用于查找名为
users
dict
中的值,而是原始值
“each”

不幸的是,Django的模板语言中没有内置的过滤器来实现您想要的功能,但是您可以自己实现一个模板过滤器。请参阅的答案

除此之外:您是否记得在模板中提供变量<代码>数字

def main(request):
    // ...
    return render(request, 'main.html', {'users': users, 'numbers': numbers})
。。。因为否则循环将根本不会执行,因为模板中的
numbers
None
。对于您的特殊用例,您可能还可以迭代集合本身:

{% for user in users %}
    <a href="#">{{ user.website }}</a>
{% enfor %}

是的,我在代码中添加了“数字”:数字,只是忘了在我的问题中提到。它不起作用。需要使用indexm,因为我只想获取并打印前四项,我将能够在几个小时内自己测试它。不幸的是,在此之前,如果没有其他人有一个有效的解决方案,我只能考虑可能出现的问题。我猜没有
for
循环的部分(例如
用户.0.website
)运行良好?如果你问
{{users.0.website}}
{users.1.website}
{users.2.website}
是否在for循环之外运行良好,答案是肯定的。在我回家自己测试之前——最后我在我的答案中编辑了另一个可能有效的解决方案。你也可以试试。。。实际上,它可能比附加的数字列表更干净。:)我刚到家自己试了一下。很抱歉,我忽略了这一点,但其实很简单,为什么它不起作用。我在上面编辑了我的答案,所以如果您愿意,您至少可以将其标记为已接受。:)
10,20,…
的问题实际上是另一个问题,所以我将在这里的评论中讨论这个问题:不幸的是,您不能用Django的默认模板过滤器将两个数字相乘。如果您想这样做,可以使用模块编写类似的内容:
{% for user in users %}
    <a href="#">{{ user.website }}</a>
{% enfor %}
{% for user in users %}
    {% if forloop.counter <= 4 %}
        <a href="#">{{ user.website }}</a>
    {% endif %}
{% endfor %}