Мое приложение сохраняет данные в сеансах анонимных пользователей. Мне нужно получить доступ к этим данным в сигнале, когда пользователь создает свою учетную запись. Я думал об использовании сигнала post_save при создании объекта User. Проблема в том, что я не знаю, как получить доступ к сеансу в сигнале. Я думал о трех возможных решений:Django - сеанс доступа в сигнале
- с использованием объекта SessionStore (https://docs.djangoproject.com/en/dev/topics/http/sessions/#using-sessions-out-of-views). Проблема заключается в том, так как у меня нет доступа к сессии или куки в сигнале, я не могу получить ключ сеанса, чтобы получить сеанс
signals.py файл:
@receiver([post_save], sender=User)
def get_from_session(sender, instance, created, **kwargs):
s = SessionStore(session_key= ???) # how to access the key?
data = s.get(‘my_special_session_data’)
…
изменить или обернуть объект User, чтобы django запросил его атрибут, который может быть передан с сигналом. Но я не могу реализовать это решение для текущего проекта, так как у меня нет доступа к объекту User.
обработка данных сеанса в представлении, но это решение является субоптимальным, так как мы хотим автоматизировать процесс.
Любые мысли? Заранее спасибо.
Благодаря Goin! Это обеспечивает пользователя, который может быть действительно полезен, но в этом конкретном случае мне также нужен сеанс. – Raphael
@ Raphael только вам нужно изменить «пользователь» на «сеанс» в каждом случае – Goin
ok thanks Goin! – Raphael