如何在两个 for 循环中获取 forloop.counter
How to get forloop.counter inside two forloops
我在另一个 for 循环中有一个 for 循环,我试图从内部循环获取索引 (forloop.counter)。 Django 出于某种原因只给我外部索引。
{% for category in categories %}
{% for product in products %}
{% if product.category.name == category.name %}
<p>This is the amount of products inside this category: {{ forloop.counter }}<p>
{% endif %}
{% endfor %}
{% endfor %}
您可以使用 forloop.parentloop 到达外部 forloop,因此在本例中为 {{forloop.parentloop.counter}}。 {{forloop.counter}} 已经给了我内循环。
Return 到类别视图(例如在 views.py 中)并添加注释:
from django.db.models import Count
categories = Category.objects.annotate(num_products=Count('product'))
记得在此视图的上下文中包含注释:
context.update({'categories': categories})
return render(request, 'myapp/categories.html', context)
现在,调整您的模板以显示计数:
{% for category in categories %}
<p>This is the amount of products inside this category: {{ category.num_products }}<p>
{% endfor %}
我在另一个 for 循环中有一个 for 循环,我试图从内部循环获取索引 (forloop.counter)。 Django 出于某种原因只给我外部索引。
{% for category in categories %}
{% for product in products %}
{% if product.category.name == category.name %}
<p>This is the amount of products inside this category: {{ forloop.counter }}<p>
{% endif %}
{% endfor %}
{% endfor %}
您可以使用 forloop.parentloop 到达外部 forloop,因此在本例中为 {{forloop.parentloop.counter}}。 {{forloop.counter}} 已经给了我内循环。
Return 到类别视图(例如在 views.py 中)并添加注释:
from django.db.models import Count
categories = Category.objects.annotate(num_products=Count('product'))
记得在此视图的上下文中包含注释:
context.update({'categories': categories})
return render(request, 'myapp/categories.html', context)
现在,调整您的模板以显示计数:
{% for category in categories %}
<p>This is the amount of products inside this category: {{ category.num_products }}<p>
{% endfor %}