在这里,django的新手。
我在Django中使用formset作为向导过程中的一个步骤的一部分,我想在完成该过程后提交它们(不是通过经典提交)。我想通过POST使用Javascript将其与其他数据一起发送。
有没有其他方法可以逐个序列化所有表单并将它们“手动”发送到json数组中?将它们作为“formset”发送是否可行?
我的例子:
在views.py中
formset = formset_factory(CustomerForm, extra=customer_number)
return render (request, 'customer/customer_info.html', {'customerformset':formset})
模板中的
{% for form in customerformset %}
{{form}}
{% endfor %}
在渲染的html中
<input class="form-control input-sm" maxlength="30" name="form-0-name" placeholder="Name" required="true" type="text">
<input class="form-control input-sm" maxlength="30" name="form-0-surname" placeholder="Surname" required="true" type="text">
<input class="form-control input-sm" maxlength="30" name="form-0-email" placeholder="Email" required="true" type="text">
答案 0 :(得分:2)
尽管表单与Django的观点是分开的,但在HTML中它们都包含在同一个<form>
元素中。所以你可以一次序列化它们:
data = $('form').serialize();
请注意,这不会转换为JSON,也不需要这样做:这会将值转换为普通的表单编码数据,这些数据可以直接发布并通过标准{{1}在Django中使用}。
答案 1 :(得分:0)
您可以在django中使用表单向导,每个步骤可以具有完全不同的表单类。这些信息可以存储在cookie或Session中,一旦最终提交(并且经过验证,请记住,就像任何其他形式一样),信息将从会话中删除。
class ContactWizard(AccessMixin, NamedUrlSessionWizardView):
通常可以使用向导,但是如果要添加例如,它可能变得非常棘手。注册/登录之间的步骤。