Как я могу повторно использовать исходный admin 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)
SESSION_COOKIE_AGE
на истечение срока действия запомненного входа, а0
внутриrequest.session.set_expiry(0)
на истечение срока действия одноразового входа. - person okm   schedule 27.02.2013set_expiry(0)
у меня работает. Вы можете проверить ответ, чтобы узнать, обновлен ли файл cookie сеанса. - person okm   schedule 12.03.2013