Как установить переменные сеанса при входе в систему, используя django-регистрацию и аутентификацию?
-
20-09-2019 - |
Вопрос
Я использую регистрацию django для входа пользователей в свое приложение.Эта часть работает нормально.Часть, которую я не могу понять, — это как установить пользовательские переменные сеанса при входе пользователя в систему.Например, я хотел бы заполнить переменные, содержащие данные UserProfile, а также выходные данные нескольких других функций.Тогда я смогу использовать эту информацию в последующих представлениях/шаблонах.
Если кто-нибудь может указать мне на онлайн-руководство или опубликовать пример кода, это было бы здорово.
Я использую Джанго 1.1 и Python 2.6.
Решение
Если вам не нужно постоянное хранение пользовательских данных (только дополнительные данные сеанса), посмотрите:
http://docs.djangoproject.com/en/dev/topics/http/sessions/
Платформа сеансов, скорее всего, уже будет включена, если вы используете django.contrib.auth.
Если вы хотите постоянно хранить дополнительные пользовательские данные (не только в сеансе, но и в базе данных), вы будете хранить их в другой «профильной» модели:
http://docs.djangoproject.com/en/dev/topics/auth/#storing-additional-information-about-users
Другие советы
Я понимаю, что @stefanw предоставил вам альтернативное решение, но чтобы ответить на исходный вопрос:
Установить данные сеанса при входе в систему сложно, потому что проще всего установить эти данные в вашей функции просмотра, а конкретная функция просмотра, которую вы хотите изменить, является частью приложения contrib.django.auth.
Итак, ваши варианты будут следующими:
- Создайте небольшой класс промежуточного программного обеспечения для установки данных сеанса.
- Создайте тег шаблона или другой фрагмент кода, который можно будет интегрировать в шаблон входа или последующую страницу, на которой будут установлены нужные вам данные.
- Напишите свою собственную функцию просмотра входа в систему (на самом деле это довольно просто).
Приятного Джанго!