首页 > 解决方案 > django 视图中的多个表单引发 csrf 令牌错误

问题描述

在一个视图中使用多个表单时,使用 django 3.2 引发错误 csrf 令牌丢失或不正确

视图.py

def post(self,request,**kwargs):
    context = {}
    if request.method== 'POST':
        form = RegisterForm1(data=request.POST)
        form2 = RegisterForm2(data=request.POST)
        if form.is_valid():
            
            form.save()
            if form2.is_valid():
                form2.save()
                email = form.cleaned_data.get('email')
                raw_password = form.cleaned_data.get('password1')
                user = authenticate(email=email,password=raw_password)
                login(request,user)
                return redirect('core:login')

注册.html

<form method="post" action="">
  {% csrf_token %} 
  
  <div class="form-group col-md-6">
      {{form1.as_p}}
  </div>
  <div class="form-group col-md-6">
      {{form2.as_p}}
  </div>
</form>

用户成功注册并通过身份验证,但引发错误 403 CSRF 令牌丢失或不正确

标签: djangodjango-csrfmultiple-forms

解决方案


推荐阅读