我的应用程序将数据保存在匿名用户的会话中。当用户创建他的帐户时,我需要在信号中访问这些数据。我正在考虑在创建用户对象时使用 post_save 信号。问题是,我不知道如何访问信号中的会话。我想到了三种可能的解决方案:
- 使用 SessionStore 对象(https://docs.djangoproject.com/en/dev/topics/http/sessions/#using-sessions-out-of-views)。问题是,由于我无权访问会话或信号中的 cookie,我无法获取会话密钥来检索会话
信号.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 对象。
处理视图中的会话数据,但是这个解决方案不是最理想的,因为我们想要自动化这个过程。
任何想法?提前致谢。