2017-09-28 34 views
0

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

**更新**。

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

样品正在发生的事情:

Add expense - restructured group 
Please complete the form below 

josh 
lifter 
omar 
Amount: 0 
Description: expense 

josh 
lifter 
omar 
Amount: 0 
Description: expense 

josh 
lifter 
omar 
Amount: 0 
Description: expense 

submit 

我希望它只是显示为第一种形式等名字。下面是代码:

{% 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

可以遍历窗体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> 
+0

谢谢你,它的工作。但现在我有另一个问题。我搞砸了,但现在它遍历每个不同字段之间的整个对象列表。请检查更新问题... @neerajkumar –

+0

如果你看看orignal文章的更新部分,我实施了你的方法。我有三种形式和三个用户。它目前正在遍历每个创建的表单之间的列表中的所有对象。因此,所有用户都会形成,所有用户比表单等等。我想找到一种方法让用户形成,然后形成用户,然后形成,然后不是所有的用户形成。我更新了原始帖子。 @neerajkumar –

+0

是否有助于你理解 –