2013-10-14 2 views
0

Мое приложение сохраняет данные в сеансах анонимных пользователей. Мне нужно получить доступ к этим данным в сигнале, когда пользователь создает свою учетную запись. Я думал об использовании сигнала post_save при создании объекта User. Проблема в том, что я не знаю, как получить доступ к сеансу в сигнале. Я думал о трех возможных решений:Django - сеанс доступа в сигнале

  1. с использованием объекта 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’) 
    … 
  1. изменить или обернуть объект User, чтобы django запросил его атрибут, который может быть передан с сигналом. Но я не могу реализовать это решение для текущего проекта, так как у меня нет доступа к объекту User.

  2. обработка данных сеанса в представлении, но это решение является субоптимальным, так как мы хотим автоматизировать процесс.

Любые мысли? Заранее спасибо.

ответ

0

Django не способ сделать это

Но вы могли бы использовать этот фрагмент кода:

http://djangosnippets.org/snippets/2179/

+0

Благодаря Goin! Это обеспечивает пользователя, который может быть действительно полезен, но в этом конкретном случае мне также нужен сеанс. – Raphael

+0

@ Raphael только вам нужно изменить «пользователь» на «сеанс» в каждом случае – Goin

+0

ok thanks Goin! – Raphael

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