如何重用原始管理员 login() 和 AuthenticationForm 为在登录页面选中“记住我”选项的用户设置更长的 cookie 长度?我目前正在通过 urls.py 使用内置登录
url(r'^login/$','django.contrib.auth.views.login', {'template_name': 'authentication/login.html'}, name='login'),
该复选框在我的 login.html 中实现为:
<label><input name="remember_me" type="checkbox">Keep me logged in</label>
但我不确定如何通过 AuthenticationForm 将该信息传递给 django.contrib.auth.views.login
目前,如果用户未选中“记住我”框,则 cookie 年龄在 settings.py 中定义
SESSION_COOKIE_AGE = 360
我发现了几个类似的问题,但我认为这不需要安装单独的应用程序。下面的代码片段(http://djangosnippets.org/snippets/1881/)看起来很有希望,但我只编写了几个月的 python 和 Django 代码,但我无法让它工作:
def login(request, *args, **kwargs):
if request.method == 'POST':
if not request.POST.get('remember_me', None):
request.session.set_expiry(0)
return auth_views.login(request, *args, **kwargs)