我在尝试发布表单时遇到错误,这没有多大意义。
错误:
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 添加生成表单集的代码,这可能是我没有得到 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)