4

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

这是我正在做的事情:

网址.py

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

视图.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。

我应该怎么办 :(((?

谢谢!!

4

1 回答 1

8

所有 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)
于 2013-08-13T11:56:46.627 回答