ValueError:在用户上设置`backend`属性

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ValueError:在用户上设置`backend`属性相关的知识,希望对你有一定的参考价值。

我在我的社交登录项目中添加了python-social-auth。我还为新用户提供了自己的注册表单。对于社交登录,我添加了一些身份验证后端。

现在,社交登录工作正常,但注册表单会导致一些问题。

输入详细信息并单击注册后,会出现此错误。

我在管理面板中看到,即使出现此错误,也会添加用户。

ValueError: You have multiple authentication backends configured and therefore must provide the `backend` argument or set the `backend` attribute on the user.

现在,它要求我设置用户的后端属性。怎么设置?

这是注册的视图,

def signup(request):
    if request.method == 'POST':
            form  = SignupForm(request.POST)
            if form.is_valid():
                    form.save()
                    username = form.cleaned_data.get('username')
                    raw_pass = form.cleaned_data.get('password')
                    user = authenticate(username=username,password=raw_pass)
                    login(request,user)
                    return redirect('location:get_location')
    else:
            form = SignupForm()
    return render(request, 'signup.html', {'form':form})

enter image description here

答案

为我工作:

    if request.method == 'POST':
        form = UserCreateForm(request.POST)
        if form.is_valid():
            user = form.save()
            login(request, user, backend='django.contrib.auth.backends.ModelBackend')
            return redirect('/')
        else:
            pass

以上是关于ValueError:在用户上设置`backend`属性的主要内容,如果未能解决你的问题,请参考以下文章

配置了多个身份验证后端,因此必须提供`backend`参数或在用户上设置`backend`属性

吴裕雄--天生自然TensorFlow高层封装:解决ValueError: Invalid backend. Missing required entry : placeholder

ValueError:在 TFIDF 上训练 KD TRee 时使用序列设置数组元素

/accounts/register 处的 ValueError 必须设置给定的用户名

尝试根据登录用户的用户名创建Model对象时的ValueError

如何修复 aws 区域错误“ValueError:必须使用 SageMaker 支持的区域设置本地 AWS 配置”