Как установить переменные сеанса при входе в систему, используя django-регистрацию и аутентификацию?

StackOverflow https://stackoverflow.com/questions/2268043

Вопрос

Я использую регистрацию 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.

Итак, ваши варианты будут следующими:

  • Создайте небольшой класс промежуточного программного обеспечения для установки данных сеанса.
  • Создайте тег шаблона или другой фрагмент кода, который можно будет интегрировать в шаблон входа или последующую страницу, на которой будут установлены нужные вам данные.
  • Напишите свою собственную функцию просмотра входа в систему (на самом деле это довольно просто).

Приятного Джанго!

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top