将表单值传递给下一个视图时,表单不会验证

时间:2013-09-28 16:37:33

标签: django django-forms django-views

在我的索引视图中,我有一个ModelChoiceField,它允许我选择各种设备。

当我提交我的选择时,我将所选值保存在这样的变量中:

if form.is_valid():
    form.save()
    request.session["eq"] = form.cleaned_data['equipment']

然后我被重定向到一个新视图(预约),其中我有一个包含三个字段的表单:“equipment”,“date”和“reserved_by”。由于我已经在上一个视图中选择了我想要的设备,我希望它能够自动填充。我通过在我的预订视图中执行以下操作来实现此目的:

form = ReservationForm(initial={'equipment': request.session.get('eq')})

因此,当我运行我的网站时,预订视图中的设备字段会自动填写,但现在表单突然无法验证(form.is_valid为false)。

现在已经挣扎了一段时间,所以任何帮助都会非常感激。

1 个答案:

答案 0 :(得分:0)

您的问题中的此表单是未绑定的。

form = ReservationForm(initial={'equipment': request.session.get('eq')})

未绑定表单永远无效。要获得有效的表单,您需要将其绑定到发布或获取数据。