首页 > 解决方案 > 为多步表单保存数据时出现 Django MultiValueKeyDictError

问题描述


class multi_form(View):
    model=Customer
    template_name='index.html'

    def get(self, request):
       return render(request, 'customer/index.html')

    def post(self,request):
        if(request.method!="POST"):
            return HttpResponseRedirect(reverse(''))
        else:
            first_name=request.POST.get("fname")
            last_name=request.POST.get("lname")
            personal_email=request.POST.get("Pid")
            official_email=request.POST.get("Oid")
            current_address=request.POST.get("Cadd")
            permanent_address=request.POST.get("Padd")
            pan_card_number=request.POST.get("Pan")
            aadhar_card_number=request.POST.get("Aadhar")
            loan_amount=request.POST.get("LAmount")
            request.session['fname']=first_name
            request.session['lname']=last_name
            request.session['Pid']=personal_email
            request.session['Oid']=official_email
            request.session['Cadd']=current_address
            request.session['Padd']=permanent_address
            request.session['Pan']=pan_card_number
            request.session['Aadhar']=aadhar_card_number
            request.session['Lamount']=loan_amount
            personal_photo=request.FILES['PhotoAttachment']
            bank_statement=request.FILES['BankAttachment']
            salary_slip=request.FILES['SalaryAttachment']
            pan_card=request.FILES['PanAttachment']
            aadhar_card=request.FILES['AadharAttachment']
            try:
                CustomerForm1=CustomerInfo(first_name=first_name, last_name=last_name, personal_email= personal_email, official_email=official_email, current_address=current_address, permanent_address=permanent_address, pan_card_number=pan_card_number, aadhar_card_number=aadhar_card_number, loan_amount=loan_amount)
                CustomerForm2=Customer(first_name=first_name, last_name=last_name, personal_email= personal_email, official_email=official_email, current_address=current_address, permanent_address=permanent_address, pan_card_number=pan_card_number, aadhar_card_number=aadhar_card_number, loan_amount=loan_amount, personal_photo=personal_photo, bank_statement=bank_statement, salary_slip=salary_slip, pan_card=pan_card, aadhar_card=aadhar_card)
                CustomerForm1.save()
                CustomerForm2.save()
                messages.success(request, "Your Response has been recorded")
                return render(request, 'customer/index.html')
            except:
                return render(request, 'customer/index.html')

所以,我试图保存多步骤表单的字段。仅在第一步后提交并完全跳过第二步后,我会显示此错误。

MultiValueDictKeyError at /
('PhotoAttachment', None)

如何解决此问题并保存此表单的第一个数据,即。客户表格 1。我想将数据保存在两个表单的表单字段中,尽管它们包含重复的字段

注意:如果我在第一步中删除了提交按钮并从 views.py 中删除了 CustomerForm1,那么我不会收到此错误,这意味着表单可以正常工作。

标签: djangodjango-forms

解决方案


推荐阅读