首页 > 解决方案 > 如何使用 form.cleaned_data django

问题描述

在 form.is_valid() 之后,我们得到 form.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)

标签: djangodjango-modelsdjango-forms

解决方案


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使用 name 访问模板中的数据reciept_num


推荐阅读