我想创建一个确认模型的formset。我已经成功创建了formset,但是formset创建了一个额外的确认对象。
这是我的代码:
查看
def render_fulfillment_modal(request,template='test.html'):
....
formset = modelformset_factory(Confirmation)
form = formset(queryset=Confirmation.objects.filter(customer_order__deal = deal))
if request.method == 'POST':
form = formset(request.POST, request.FILES)
if form.is_valid():
form.save()
TEMPLATE
<form method="post" action="{% url open_fullfill_modal deal.id %}">{% csrf_token %}
{{ form.management_form }}
{% for f in form %}
<tr>
<td>{{f.fullfilled}}</td>
<td>
<p class="name">{{f.instance|confirmation_user_info}}</p>
</td>
<td><input type="text" class="input-small datepicker"></td>
<td>{{f.tracking_code}}</td>
</tr>
{% endfor %}
<div class="pull-right button-box">
<button type="submit" class="btn btn-primary btn-large">Save Changes</button>
</div>
我正在为不相关的对象获取额外的表单,而不在我的查询集中。我用另一个模型试过这个,每次我得到一个额外的对象。我想这是处理数据或其他东西的表格集,我不确定。发布此表单时会出现此问题。它给了我MultiValueDictKeyError,它是:
"Key 'form-0-id' not found in <QueryDict: {u'form-MAX_NUM_FORMS': [u''], u'form-TOTAL_FORMS': [u'3'] ...
有什么想法吗?
答案 0 :(得分:5)
只需在{{f.id}}
{{f.fullfilled}}
它为所有f提供了一个隐藏的form-id,并将其传递给request.Post中的QueryDict