Django-信号中的访问会话

Django-信号中的访问会话,django,session,signals,Django,Session,Signals,我的应用程序在匿名用户会话中保存数据。我需要在用户创建帐户时以信号的形式访问此数据。我正在考虑在创建用户对象时使用post_保存信号。问题是,我不知道如何访问信号中的会话。 我考虑了三种可能的解决方案: 使用SessionStore对象()。问题是,由于我无法访问会话或信号中的cookie,因此无法获取会话密钥来检索会话 signals.py文件: @receiver([post_save], sender=User) def get_from_session(sender, instance

我的应用程序在匿名用户会话中保存数据。我需要在用户创建帐户时以信号的形式访问此数据。我正在考虑在创建用户对象时使用post_保存信号。问题是,我不知道如何访问信号中的会话。 我考虑了三种可能的解决方案:

  • 使用SessionStore对象()。问题是,由于我无法访问会话或信号中的cookie,因此无法获取会话密钥来检索会话
  • 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’)
        …
    
  • 修改或包装用户对象,使django请求成为his的一个属性,该属性可以与信号一起传递。但我可能不会为当前项目实现此解决方案,因为我无法访问用户对象

  • 在视图中处理会话数据,但此解决方案并不理想,因为我们希望自动化该过程


  • 有什么想法吗?提前谢谢

    Django不知道怎么做

    但您可以使用以下代码段:


    谢谢你!这确实提供了用户,这可能非常有用,但在这种特定情况下,我还需要会话。@Raphael只有在任何情况下,您都必须将“用户”更改为“会话”