【发布时间】:2020-02-27 22:39:23
【问题描述】:
我有可以从表单集中动态添加和删除的表单。在前端,我通过选中表单中包含的“删除”复选框来标记删除。 form-0-DELETE 会自动添加到 POST 中。
Deleting form from django formset
def edit(request):
Formset = formset_factory(EditForm, extra=1, can_delete=True)
if request.method == 'POST':
formset = Formset(request.POST)
if formset.is_valid():
cleaned_data = formset.cleaned_data
print(cleaned_data)
return render(request, '/edit.html', {'test': 'Post'})
else:
formset = Formset()
return render(request, '/edit.html', {'formset': formset})
这是返回表单集的一部分:
数据:
{u'form-MAX_NUM_FORMS': [u'1000'], u'form-0-test': [u'72'], u'form-0-DELETE': [u'on'], u'form-TOTAL_FORMS': [u'0'], u'form-INITIAL_FORMS': [u'0'], u'form-0-weight': [u'1']}
deleted_forms:
[]
'test' 和 'weight' 是表单中的输入值。您可以在那里看到“form-0-DELETE”。这意味着删除事件已添加到 POST 中,默认值为“on”。我的一个链接说将此值更改为可以评估为 true 的值,将其设置为 True、true 和 1 并没有改变任何内容。
TOTAL-FORMS 正确地为 0,因为我跟踪添加和删除,但我希望 deleted_forms 填充 form-0。当我有超过 0 个表单时,这是一个问题,因为我不知道清理后的数据中会有什么,因为没有记录已删除的表单。
【问题讨论】: