我在尝试发布表单时遇到错误,这没什么意义。
错误:
MultiValueDictKeyError at /admin/courses/course-selector/add/
"Key 'form-0-id' not found in <QueryDict:
所以我已经完成了谷歌搜索,并得出结论,因为我自己绘制了表格(我已经建了一张桌子并在我想要的地方打印出每个字段)。
所以我试图添加一个带有id的字段,但它不会打印。它只是在模板中没有id我写入表单。我不知道现在要做什么因为谷歌我已经遵循了这个案例的既定建议并发现了一个问题。
模板代码。
<form action="." method="POST" id="formset">
<table>
<tr>
{{ formset.management_form }}
</tr>
<tr>
<th></th>
{% for field in formset.forms.0 %}
{% if not field.is_hidden %}
<th>{{ field.label }}</th>
{% endif %}
{% endfor %}
</tr>
{% for f in formset.forms %}
<tr>
<td><input type="checkbox" id="checkbox_{{ f.id }}" /></td>
<td>{{ f.id }}</td>
{% for field in f %}
{% if not field.is_hidden %}
<td>
{{ field.errors }}
{{ field }}
</td>
{% else %}
<td valign="bottom">{{ field }}</
{% endif %}
{% endfor %}
</tr>
{% endfor %}
</table>
</form>
为了简洁起见......
为什么不{{f.id}}输出任何内容。
EDIT1 添加生成formset的代码,这可能就是我没有获得id的原因。
InstanceFormSet = formset_factory(BulkAddInstanceForm, extra=0)
# build the list for populating the forms
n, datalist = 0, []
while n < int(input_data['copies']):
datalist.append(data)
n +=1
formset = InstanceFormSet(initial=datalist)
答案 0 :(得分:0)
我在你的模板中发现了多个错误:
答案 1 :(得分:0)
我使用{{forloop.counter0}}或{{forloop.counter}} 找出formset中表单的id应该是
答案 2 :(得分:0)
比赛晚了几年,但这就是答案。把它放在{% for f in formset.forms %}
{{ forloop.counter }}
这将输出与每个表格相关联的数字(例如,1,2,3等)