Python 在Django中迭代特定组中的项
在Django模板中,我希望能够遍历组和项目,但我希望遍历组下的项目。到目前为止,我已经让它们像这样迭代,但它没有显示这些项属于哪个组。如何迭代模板以获得此包含 观点:Python 在Django中迭代特定组中的项,python,django,django-templates,iteration,Python,Django,Django Templates,Iteration,在Django模板中,我希望能够遍历组和项目,但我希望遍历组下的项目。到目前为止,我已经让它们像这样迭代,但它没有显示这些项属于哪个组。如何迭代模板以获得此包含 观点: def manage(request): group_list = Group.objects.order_by('name').filter(user=request.user) item_list = Item.objects.order_by('name').filter(user=request.user
def manage(request):
group_list = Group.objects.order_by('name').filter(user=request.user)
item_list = Item.objects.order_by('name').filter(user=request.user)
return render(request, 'manage.html', {'group_list': group_list, 'item_list': item_list})
模板:
{% extends "base.html" %}
{% block content %}
{% for group in group_list %}
{{ group.name }}<br />
{% endfor %}
{% for item in item_list %}
{{ item.name }}<br />
{% endfor %}
{% endblock %}
我猜你有一个从项目到组的fk
class Item(models.Model):
group = models.ForeignKey(Group)
观点:
def manage(request):
group_list = Group.objects.order_by('name').filter(user=request.user)
return render(request, 'manage.html', {'group_list': group_list})
模板:
{% extends "base.html" %}
{% block content %}
{% for group in group_list %}
{{ group.name }}<br />
<p>Item for this group</p>
{% for item in group.item_set.all %}
{{item.name}}
{% endfor %}
{% endfor %}
{%extends“base.html”%}
{%block content%}
{组中的组的%u列表%}
{{group.name}}
此组的项目
{group.item_set.all%}中的项的%
{{item.name}
{%endfor%}
{%endfor%}
{%endblock%}您的方法不需要额外的数据库命中。出于性能原因,您应仅选择具有以下相关组的项目:
def manage(request):
item_list = Item.objects.order_by(
'group__name', 'name').filter(
user=request.user).select_related('group')
return render(request, 'manage.html', {'item_list': item_list})
{% extends "base.html" %}
{% block content %}
{% for item in item_list %}
{% ifchanged item.group.name %}
{{ item.group.name }}<br />
{% endifchanged %}
{{ item.name }}<br />
{% endfor %}
{% endblock %}
模板如下所示:
def manage(request):
item_list = Item.objects.order_by(
'group__name', 'name').filter(
user=request.user).select_related('group')
return render(request, 'manage.html', {'item_list': item_list})
{% extends "base.html" %}
{% block content %}
{% for item in item_list %}
{% ifchanged item.group.name %}
{{ item.group.name }}<br />
{% endifchanged %}
{{ item.name }}<br />
{% endfor %}
{% endblock %}
{%extends“base.html”%}
{%block content%}
{项列表%中的项的百分比}
{%ifchanged item.group.name%}
{{item.group.name}}
{%endifchanged%}
{{item.name}}
{%endfor%}
{%endblock%}
这样,无论有多少组,您只需点击一次数据库。哪些是
组
和项
对象?组和项是如何关联的?