如何使用form.cleaned_data django

时间:2018-06-21 10:30:28

标签: django django-models django-forms

form.is_valid()之后,我们得到form.cleaned_data。我如何在下一页上使用这些清除的数据。

例如,在处理完表单页面后,我们将客户重定向到下一页,在此我要使用cleaned_data的信息(例如姓名,联系方式,地址等)显示在下一页。

def ind(request):
    if request.method == 'POST':
        form = form_name(request.POST)
        if form.is_valid():
            print(form.cleaned_data)
            return render(request, 'app_one/abc.html', {'data': form.cleaned_data})
            # form.save(commit=True)
            # return render(request,'app_one/index.html')
    else:
        form=form_name()
    return render(request,'app_one/index.html',{'form':form)

1 个答案:

答案 0 :(得分:1)

调用form.is_valid()方法后,我们将获得经过验证的数据。一旦我们拥有经过验证的数据,便可以随意使用。 对于你的情况

  

第一页上填写的客户详细信息需要在第二页上显示为收据。

您可以创建名为Reciept的模型,并将详细信息保存在模型中以备将来参考。如果要在其他页面视图中使用这些详细信息,则只需在context中传递模型对象以呈现详细信息。

您可以使用如下所示的清理数据

def ind(request):
    if request.method == 'POST':
        form = form_name(request.POST)
        if form.is_valid():
            context = {}.update(form.cleaned_data)
            return render(request, 'app_one/abc.html', context)
            # form.save(commit=True)
            # return render(request,'app_one/index.html')
    else:
        form=form_name()
    return render(request,'app_one/index.html',{'form':form)

示例表格:

class MyForm(forms.Form):
     reciept_num = forms.CharField()

以上述表格为例 您可以使用名称reciept_num访问模板中的reciept_num数据。