在Formset_Factory = Django中的表单之间添加内容

时间:2017-09-28 00:22:23

标签: python django django-forms

我正在研究django应用程序,更具体地说,是一个formset(表单组)。我有表单设置金额设置查询集检索的对象数。我想要做的是更改表单集,以便在表单集中的每个表单之间包含与表单集相关的用户的名称。现在发生的事情是它打印整个formset然后我要移动的名称放在formset中的每个表单之间。

**已更新**。

现在发生的事情是,在每个正在迭代的不同表单之间,它显示正在显示的所有对象。我的问题是我只希望列表中的第一个对象在第一个表单之前打印,第二个对象在第二个表单之前显示。等等...

正在发生的事情的样本:

{% 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 }}
    {% for f in form %}
      {% for expense in expenses %}
        <p>{{ expense.user.username }}</p>
      {% endfor %}
      {{ f.as_p }}
    {% endfor %}
    <input type="submit" name="submit" value="submit">
  </form>
{% endblock %}

我希望它只显示第一个表单的名字,依此类推。这是代码:

{{1}}

1 个答案:

答案 0 :(得分:1)

您可以在模板中迭代表单var并可以在表单之间添加信息,但请确保您还必须以下面的代码形式添加{{ form.management_form }}

<form action="." method="POST">
    {% csrf_token %}
    {{ form.management_form }}
    {% for f in form %}
    {# Add whatever information you want to show between forms #}
    {{ f.as_p }}
    {% endfor %}
    {% for expense in expenses %}
      <p>{{ expense.user.username }}</p>
    {% endfor %}
    <input type="submit" name="submit" value="submit">
  </form>