def alt_login(request, *args, **kwargs): """ Info on why this exists: http://code.djangoproject.com/ticket/6941 Clears out any session data on login that would otherwise persist for any subsequent logins regardless of user_id. Session data is only cleared if the test cookie is not present. If its present, the session data is already cleared and this does nothing. """ if SessionBase.TEST_COOKIE_NAME not in request.session: for sesskey in request.session.keys(): del request.session[sesskey] return original_login(request, *args, **kwargs)
def login(request): u""" Вызывает соответствующее представление Django, анализирует результат. В случае ошибки генерирует сообщение и возвращает пользователя на прежнюю страницу. """ response = original_login(request) if isinstance(response, HttpResponseRedirect): return response else: messages.error(request, _(u'Your credentials are wrong. Sorry.')) return_to = request.REQUEST.get(REDIRECT_FIELD_NAME, reverse('frontend:index')) return HttpResponseRedirect(return_to)
def login(request, *args, **kwargs): request.session['_next'] = request.GET.get('next') return original_login(request, *args, **kwargs)