Python 如何在循环中进行循环
我试图在我的应用程序中创建一个包含类别循环的部分,然后是该类别中的表单。例如,它应该显示如下:Python 如何在循环中进行循环,python,django,Python,Django,我试图在我的应用程序中创建一个包含类别循环的部分,然后是该类别中的表单。例如,它应该显示如下: <ul> {% for c in Category_Name %} <li>{{ c.Name }} <ul> {% for form in c.form_set.all %} <li><a href="/forms/{{ form.id }}">{{ form.Title }}
<ul>
{% for c in Category_Name %}
<li>{{ c.Name }}
<ul>
{% for form in c.form_set.all %}
<li><a href="/forms/{{ form.id }}">{{ form.Title }}</a></li>
{% endfor %}
</ul>
</li>
{% endfor %}
</ul>
类别1
表格一
表格二
第2类
表格三
但我真正得到的是:
类别1
表格一
表格二
表格三
第2类
表格一
表格二
表格三
我怎样才能解决这个问题
我的看法是:
def homepage (request):
Categories = Category.objects.all()
Forms = Form.objects.all()
output = {
'Category_Name': Categories,
'Form_Title': Forms,
}
return render_to_response('forms/home.html', RequestContext(request, output))
我的HTML是:
<ul>{% for c in Category_Name %}<li>{{ c.Name }}<ul>{% for c in Form_Title %}
<li><a href="/forms/{{ c.id }}">{{ c.Title }}</a></li>{% endfor %}</ul></li>{% endfor %}</ul>
{%表示类别{u Name%}- {{c.Name}
{%表示形式{u Title%}
{%endfor%}
{%endfor%}
此用例有一个重组模板标记:
使用regroup的另一个优点是,只涉及一个sql调用。如果您有许多类别,这可能是一个问题。此用例有一个重组模板标记:
使用regroup的另一个优点是,只涉及一个sql调用。如果您有许多类别,这可能是一个问题。如果您的表单通过foreignkey关联到一个类别
class Form(models.Model):
...
category = models.ForeignKey(Category)
你可以这样做:
<ul>
{% for c in Category_Name %}
<li>{{ c.Name }}
<ul>
{% for form in c.form_set.all %}
<li><a href="/forms/{{ form.id }}">{{ form.Title }}</a></li>
{% endfor %}
</ul>
</li>
{% endfor %}
</ul>
如果您的表单通过foreignkey与类别关联
class Form(models.Model):
...
category = models.ForeignKey(Category)
你可以这样做:
<ul>
{% for c in Category_Name %}
<li>{{ c.Name }}
<ul>
{% for form in c.form_set.all %}
<li><a href="/forms/{{ form.id }}">{{ form.Title }}</a></li>
{% endfor %}
</ul>
</li>
{% endfor %}
</ul>
那么,您的应用程序应该如何知道哪个表单与哪个类别对应?顺便说一句:你确实在一个循环中有一个循环,所以你不想这样,或者至少不想这样。另外,您不应该像那样重用
c
。那么……您的应用程序应该如何知道哪个表单与哪个类别对应?顺便说一句:你确实在一个循环中有一个循环,所以你不想这样,或者至少不想这样。另外,您不应该像那样重用c
。