我正在尝试添加一个"让我登录"复选框到Django的默认登录视图.
这是我正在做的事情:
urls.py
url(r'^login/$',
myuser_login,
{'template_name': 'app_registration/login.html', 'authentication_form': MyAuthenticationForm},
name='auth_login',
),
Run Code Online (Sandbox Code Playgroud)
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)
Run Code Online (Sandbox Code Playgroud)
所以基本上,我正在尝试将更多信息添加到我自己的视图中,只需调用Django的默认登录功能即可.当我这样做时,我收到此错误:
ValueError at /accounts/login/
The view app_registration.views.myuser_login didn't return an HttpResponse object.
Run Code Online (Sandbox Code Playgroud)
我检查了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)
Run Code Online (Sandbox Code Playgroud)