0
我的應用程序將數據保存在匿名用戶的會話中。當用戶創建他的賬戶時,我需要在信號中訪問這些數據。我正在考慮在創建User對象時使用post_save信號。問題是,我不知道如何訪問信號中的會話。我想過三種可能的解決方案: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對象。
在視圖中處理會話數據,但是這個解決方案並不理想,因爲我們想自動化這個過程。
有沒有想過?提前致謝。
感謝布萊恩!這確實提供了用戶,這可能非常有用,但在這種特定情況下,我也需要會話。 – Raphael
@Raphael只有你必須在每種情況下將'用戶'更改爲'會話' – Goin
好的,謝謝Goin! – Raphael