Найти - Пользователи
Полная версия: Сбрасывается сессия при редиректе.
Начало » Django » Сбрасывается сессия при редиректе.
1
Elaphe
Есть сайт, где авторизация сделана таким образом:
 def index(request):
    if request.method == 'POST':
        form = LoginForm(request.POST)
        if form.is_valid():
            cd = form.cleaned_data
            user = Users.objects.get(login = cd.get('login'), password = cd.get('password'))
            rights = UserGroupRighs.objects.filter(group = user.group)
            request.session['login'] = user
            request.session['user_rights'] = rights
            return redirect(start)
В более ранних (до 1.7 включительно) версиях Django эта функция работала нормально, данные сохранялись в сессии. Начиная с версии 1.8, сессия при переходе на другую страницу сбрасывается.
Причем у меня есть другой сайт, работающий на Django 1.9, где авторизация организована так же - там все работает, поэтому видимо, дело в каких-то настройках. Но с виду все нормально:
 SESSION_ENGINE = 'django.contrib.sessions.backends.cache'
MIDDLEWARE_CLASSES	= [
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware']
INSTALLED_APPS = 	(...
    'django.contrib.sessions',
 ...)
Гугл ничего толкового не подсказал, в документации тоже никаких наводок.
FishHook
Объясните, в чем глобальный смысл такой странной авторизации? Чем не устраивает стандартная джанговская?
Elaphe
Это “наследство” от предыдущего программиста.
Почему именно так хз, может он видел какие-то скрытые преимущества или он просто контрол фрик
Есть мысль все это переписать, используя API django.contrib.auth и нашу модель, но, как обычно, работа над проектами идет в режиме “нужно было вчера”, так что пока так.
FishHook
Да там делать то нечего в принципе.
Elaphe, поверьте, что самые тяжелые ошибки в программе - это ошибки архитектуры. И чем дольше вы тяните с рефакторингом, тем больше косяков у вас будет накапливаться и тем сложнее их будет исправить.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB