Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在循环中进行循环_Python_Django - Fatal编程技术网

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