Как добавить переменные сеанса со встроенным представлением входа в систему - PullRequest
0 голосов
/ 25 мая 2018

Я использовал встроенное представление входа в систему, которое делает django, но теперь я не знаю, как устанавливать сеансы, когда пользователь входит в систему. Я думал о перенаправлении пользователя в новое представление, которое добавит эти переменные сеанса, но яне считаю это идеальным решением.Другой вопрос, который у меня есть: могу ли я использовать эти переменные сеанса в своих шаблонах?Если нет, как я могу получить эти данные в шаблоны?

Также я использую Django 1.11 с python 2.7.

1 Ответ

0 голосов
/ 26 мая 2018

Я понял, что мне нужно сделать.Вам нужно использовать сигналы.По сути, вам просто нужно установить сигнал, что как только пользователь входит в систему, установите сеансы.
Вот как это выглядит в моем коде:

@receiver(user_logged_in)
def sig_user_logged_in(sender, user, request, **kwargs):
    request.session['isLoggedIn'] = True
    request.session['isAdmin'] = user.is_superuser
    request.session['team'] = user.teams
    request.session['email'] = user.email
    isLoggedIn = request.session.get('isLoggedIn',False)
    isAdmin = request.session.get('isAdmin',False)
    team =request.session.get('team','')
    email = request.session.get('email','')
    return render(
        request,
        'registration/login.html',
        context = {'isLoggedIn':isLoggedIn,'isAdmin':isAdmin,'team':team,'email':email},
    )

Убедитесь, что импортированы следующие данные:

from django.dispatch import receiver
from django.contrib.auth.signals import user_logged_in

Также, если вам интересно, в какой файл я поместил этот файл, это был views.py

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...