我一直在努力将 django-axes 纳入我正在使用自定义用户模型的项目中。最后,我得到了这个几乎工作。我说“差不多”因为没有显示任何错误,但不幸的是django-axes 没有捕获失败的登录尝试。
事实上,它在管理员中显示用户已登录(因此,用户永远不会注销)。我想我在这里得到了完全相同的问题:Django-axes not working with custom login view
我会告诉你我的代码的一些部分,所以也许你可以对这个问题有所了解。 感谢提前
urls.py
from axes.decorators import watch_login
from apps.main.views import userLogin
urlpatterns = patterns(‘',
url(r'^login/$', watch_login(userLogin), name="login"),
views.py
from axes.decorators import watch_login
@watch_login
def userLogin(request):
if request.method == "POST":
if 'login_form' in request.POST:
username = request.POST.get('username', '')
password = request.POST.get('password', '')
user = authenticate(username=username, password=password)
if user is not None: # The user exists, credentials OK
if user.is_active:
login(request, user) # Log the user
if not request.POST.get('rememberUser', None):
request.session.set_expiry(3600)
else:
return redirect('users_app:disabled_account')
else:
return redirect('users_app:login_failed')
return redirect('main_app:index')
def LogOut(request):
logout(request)
return redirect('/‘)
class IncorrectLoginView(TemplateView):
template_name = 'users/login_failed.html'
base.py
MIDDLEWARE_CLASES = (
'da_tracker.middleware.TrackerMiddleware',
)