2014-02-05 3 views
1

Я не могу найти сигнал, связанный с созданной сессией. Я знаю сигналы auth, но я хочу заполнить переменную сеанса для анонимных пользователей.Сигнал о том, что сеанс был создан? [для анонимного пользователя]

Что мне не хватает?

Заранее спасибо

+0

subclass django.contrib.sessions.backends.db, метод переопределения создает с вами сигнал и устанавливает SESSION_ENGINE на новый движок – vadimchin

+0

попробует это и вернется к вам! Спасибо :) –

ответ

0

Чтобы сохранить переменный сеанс для анонимных пользователей, вы можете сделать что-то же просто, как request.session['something'] = True (или что-то значение, которое вы хотите) в соответствующем виде. И если вы пытаетесь увидеть, видели ли вы анонимного пользователя раньше, вы можете просто проверить наличие ключа «что-то».

Под капотом django обрабатывает настройки cookie и создает сеанс для анонимного пользователя, если вы изменяете переменную сеанса. Если у анонимного пользователя уже есть сеанс, он просто записывает измененное состояние.

Для получения более подробной информации ознакомьтесь с документацией сессии: https://docs.djangoproject.com/en/dev/topics/http/sessions/. Это довольно сложно.

И, наконец, не забудьте периодически очищать сеансы с истекшим сроком действия с ./manage.py clearsessions, если сеансы хранятся в постоянном хранилище.

+0

Как здорово! Это ТОЧНО, как я решил, что идти немного раньше и в разгар написания. Чтение вопроса и мышления «человек, который был не очень умным» :) Во всяком случае, я сделал вспомогательную функцию, чтобы я прочитал это значение из сеанса и проверил, является ли оно нулевым, а затем запустил и заполнил его значениями по умолчанию. я хотел, чтобы во время сессии был создан сигнал », хороший день :-) –

+0

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

Смежные вопросы