python - 如何将 django-tastypie 与 django-axes 一起使用

标签 python django tastypie django-authentication

设置:

django==1.8
django-tastypie==0.13
django-axes==2.3

我通过 tastypie 获得了登录资源,如下所示

from django.contrib.auth import login


class LoginResource(Resource):
    class Meta:
        resource_name = 'login'
        allowed_methods = ['post']

    def obj_create(self, bundle, **kwargs):
        form = AuthForm(data=bundle.data)
        if form.is_valid():
            request.session.set_expiry(0)
            if form.get_user():
                login(bundle.request, form.get_user())
                raise ImmediateHttpResponse(response=HttpResponse(status=200))
        raise ImmediateHttpResponse(response=http.HttpBadRequest(status=400))

我不知道如何在 django-axes 中记录这些登​​录尝试。

最佳答案

接下来是我自己的解决方案:我在 views.py 中编写自定义登录 View

from django.contrib.auth.views import login


def core_login(request, *args, **kwargs):
    kwargs["authentication_form"] = AuthForm
    return login(request, *args, **kwargs)

在 Tastypie 资源中:

from core.views import core_login

class LoginResource(Resource):
    class Meta:
        resource_name = 'login'
        allowed_methods = ['post']

    def obj_create(self, bundle, **kwargs):
        bundle.request.POST = bundle.data
        if core_login(bundle.request).status_code == 302:
            raise ImmediateHttpResponse(response=HttpResponse(status=200))
        raise ImmediateHttpResponse(response=http.HttpBadRequest(status=400))

关于python - 如何将 django-tastypie 与 django-axes 一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45195900/

相关文章:

mysql - Django 全文搜索 mysql

restkit - RKPaginator 参数

python - 在 pandas 中按组替换列/系列

python - 为什么 OpenCV 介绍性视频教程中的示例会抛出错误?首选解决方法是什么?

Python Xlrd读取excel文件报错

Django用L返回用户模型ID

python - 多项式的 Pandas 外推

jquery - Django JQuery 自动完成

python - Tastypie 0.9.6 : datetime serialization is not tz-aware

python - 什么 Python 框架用于没有前端的 REST/JSON Web 服务?