2013-10-14 92 views
0

我的應用程序將數據保存在匿名用戶的會話中。當用戶創建他的賬戶時,我需要在信號中訪問這些數據。我正在考慮在創建User對象時使用post_save信號。問題是,我不知道如何訪問信號中的會話。我想過三種可能的解決方案: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

感謝布萊恩!這確實提供了用戶,這可能非常有用,但在這種特定情況下,我也需要會話。 – Raphael

+0

@Raphael只有你必須在每種情況下將'用戶'更改爲'會話' – Goin

+0

好的,謝謝Goin! – Raphael