Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
django axes modelbackend需要';请求';鉴定_Django_Security_Django Models_Django Views_Django Login - Fatal编程技术网

django axes modelbackend需要';请求';鉴定

django axes modelbackend需要';请求';鉴定,django,security,django-models,django-views,django-login,Django,Security,Django Models,Django Views,Django Login,在我的应用程序中,我有一个使用django custom user的自定义用户模型,我也使用allauth。Django axes在admin和allauth上注册每次登录尝试,但我在用户登录时遇到问题 登录视图: def user_login(request): data = dict() if request.user.is_authenticated: return redirect('frontend:dashboard') if reques

在我的应用程序中,我有一个使用django custom user的自定义用户模型,我也使用allauth。Django axes在admin和allauth上注册每次登录尝试,但我在用户登录时遇到问题

登录视图:

def user_login(request):
    data = dict()

    if request.user.is_authenticated:
        return redirect('frontend:dashboard')

    if request.method == "POST":
        form = LoginForm(request.POST)
        if form.is_valid():
            email = form.cleaned_data['email']
            password = form.cleaned_data['password']
            if user is not None:
                user = authenticate(email=email, password=password)
                if user.is_active:
                    login(request, user)
                    user_logged_in.send(sender=CustomUser, request=request, user=user)
                    return redirect('frontend:dashboard')
                else:
                    messages.error(request, _('Incorrect email or password.'))
                    user_login_failed.send(sender=CustomUser, request=request, credentials={'username': form.cleaned_data.get('email')})
            else:
                messages.error(request, _('Incorrect email or password.'))
                user_login_failed.send(sender=CustomUser, request=request, credentials={'username': form.cleaned_data.get('email')})
            return redirect('auth:login')
    else:
        form = LoginForm()
    data['form'] = form
    return render(request, os.path.join(settings.AUTH_TEMPLATE, 'login.html'), data)
当我尝试登录时,出现以下错误:

axes.backends.AxesModelBackend.RequestParameterRequired: DjangoAxesModelBackend requires calls to authenticate to pass `request`
django axes文档有点混乱,我不明白在解决这个问题时必须做些什么

我必须指出,只有在我将
axes.backends.AxesModelBackend
添加到
身份验证\u backends
时,才会出现此错误,这是强制性的。

对于我来说:

form = AuthenticationForm(data=request.POST, request=request)   
user = authenticate(username=username, password=password, request=request)
此外,对登录视图使用decorator

from axes.decorators import axes_dispatch
@axes_dispatch
这就是解决办法。也许这对你也有帮助

致意