繁体   English   中英

覆盖和自定义“django.contrib.auth.views.login”

[英]Overriding and customizing “django.contrib.auth.views.login”

我正在尝试添加一个“让我登录”复选框到Django的默认登录视图。

这是我正在做的事情:

urls.py

url(r'^login/$',
    myuser_login,
    {'template_name': 'app_registration/login.html', 'authentication_form': MyAuthenticationForm},
    name='auth_login',
),

views.py

from django.contrib.auth.views import login

def myuser_login(request, *args, **kwargs):
    if request.method == 'POST':
        if not request.POST.get('remember', None):
            request.session.set_expiry(0)

    login(request, *args, **kwargs)

所以基本上,我正在尝试将更多信息添加到我自己的视图中,只需调用Django的默认登录功能即可。 当我这样做时,我收到此错误:

ValueError at /accounts/login/
The view app_registration.views.myuser_login didn't return an HttpResponse object.

我检查了Django源代码,默认的contrib.auth.views.login函数显然返回了一个HttpResponse。

我该怎么办 :(((?

谢谢!!

所有django视图都必须返回HttpResponse 你的观点没有返回任何东西。

你应该这样回来

def myuser_login(request, *args, **kwargs):
    if request.method == 'POST':
        if not request.POST.get('remember', None):
            request.session.set_expiry(0)

    return login(request, *args, **kwargs)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM