Python 从django模板中的列表中选择特定对象

Python 从django模板中的列表中选择特定对象,python,django,django-forms,Python,Django,Django Forms,我和一个formset_facotry一起工作,我在想办法解决问题 我有一个从views.py文件中的queryset返回的用户列表。我还有一个表单列表,这些表单是根据列表查询返回的对象数量创建的。我希望它选择返回的第一个对象,并在要显示的第一个表单之前显示它。然后抓取第二个对象并将其显示在第二个窗体之前,依此类推。。。其基本思想如下: 我想让它做一些类似于这个通用模板的事情: header = 'Add record' + groupName if message: print(mes

我和一个formset_facotry一起工作,我在想办法解决问题

我有一个从views.py文件中的queryset返回的用户列表。我还有一个表单列表,这些表单是根据列表查询返回的对象数量创建的。我希望它选择返回的第一个对象,并在要显示的第一个表单之前显示它。然后抓取第二个对象并将其显示在第二个窗体之前,依此类推。。。其基本思想如下:

我想让它做一些类似于这个通用模板的事情:

header = 'Add record' + groupName
if message:
    print(message)
count = 0
for f in form:
    expenses[0]
    f.as_p
    count = count + 1
{% extends "base.html" %}

{% block content %}
  <h2>Add expense - {{ currentGroup.name }}</h2>
  {% if message %}
    <p>{{message}}</p>
  {% endif %}
  <form action="." method="POST">
    {% csrf_token %}
    {{ form.management_form }}
    {% with count=0 %}
      {% for f in form %}
        {% for expense in expenses %}
          <p>{{ expense.user.username }}</p>
        {% endfor %}
        {{ f.as_p }}
      {% endfor %}
    {% endwith %}
    <input type="submit" name="submit" value="submit">
  </form>
{% endblock %}
我想根据循环中的计数获取特定项目:

以下是我在模板中的代码:

header = 'Add record' + groupName
if message:
    print(message)
count = 0
for f in form:
    expenses[0]
    f.as_p
    count = count + 1
{% extends "base.html" %}

{% block content %}
  <h2>Add expense - {{ currentGroup.name }}</h2>
  {% if message %}
    <p>{{message}}</p>
  {% endif %}
  <form action="." method="POST">
    {% csrf_token %}
    {{ form.management_form }}
    {% with count=0 %}
      {% for f in form %}
        {% for expense in expenses %}
          <p>{{ expense.user.username }}</p>
        {% endfor %}
        {{ f.as_p }}
      {% endfor %}
    {% endwith %}
    <input type="submit" name="submit" value="submit">
  </form>
{% endblock %}
{%extends“base.html”%}
{%block content%}
添加费用-{currentGroup.name}
{%if消息%}
{{message}}

{%endif%} {%csrf_令牌%} {{form.management_form}} {0%,计数为0%} {f的%形式为%} {费用百分比中的费用百分比} {{expense.user.username}

{%endfor%} {{f.as_p} {%endfor%} {%endwith%} {%endblock%}

有人能帮我找出如何在html模板中的对象集中迭代和指定某个对象吗

{% for expense in expenses %}
  {% if forloop.counter == 25 %}  # this is the 25th, not 26th item
      do stuff
  {% endif %}
{% endfor %}

我认为下面的代码将适用于模板循环

{% for f in form %}
   {% for expense in expenses %}
       {% if forloop.parentloop.counter == forloop.counter %}
          <p>{{ expense.user.username }}</p>
       {% endif %}
   {% endfor %}
   {{ f.as_p }}
{% endfor %}
{%f格式为%}
{费用百分比中的费用百分比}
{%if-forloop.parentloop.counter==forloop.counter%}
{{expense.user.username}

{%endif%} {%endfor%} {{f.as_p} {%endfor%}
听起来像是您在寻找的,它将连接两个列表,让您可以一起迭代。您需要在视图中将列表压缩在一起,然后可以在模板中迭代新列表

他认为:

forms_and_users = zip(forms_list, users_list)
# Add forms_and_users to template context
在模板中

{% for form, user in forms_and_users %}
    {{ user }}
    {{ form }}
{% endfor %}

它工作得很好。你为此付出了那么多。我真的很感激@neerajkumar