2016-03-02 97 views
1

我已經通過pip安裝django-redis-session並添加此設置到settings.py文件:使用Redis的工作來存儲會話 - Django的

SESSION_ENGINE = 'redis_sessions.session' 

當我去到終端和類型:

$ redis-cli monitor 

我當我登錄並註銷時,可以看到有變化(使用python-social-auth)。

我的問題是:如何根據用戶獲取會話(來自redis)?

如果我打電話is_authenticated()用戶函數它的工作原理,但我的DB(PostgreSQL)會話表有0行。

Fianlly,有沒有辦法手動編寫會話密鑰和數據?我需要使用基於redis中存儲的兩個字段的複雜PK會話。

+1

我不明白你的問題。爲什麼你會期望Posgres中的任何行?您已將會話後端專門設置爲redis。 –

+0

@DanielRoseman是的,我不希望Postgres中的行我只是說會話已成功存儲在redis中。 – Gocht

回答

1

您應該可以通過request.session獲得當前會話。無論用戶是否登錄,這都應該起作用,無論用戶是否登錄。

有關更多信息,請參見using sessions in views上的文檔。

+0

從'request.session'我可以訪問用戶,謝謝。 – Gocht

+0

如果您需要登錄的用戶,請使用'request.user' - 您不必通過會話。 – Alasdair

+0

再次感謝您,還有一個問題:您知道我該如何手動編寫會話?我需要使用一個複雜的PK進行會話,我希望將其存儲在redis中。 – Gocht

相關問題