2016-08-16 14 views
0

我的社會-auth的管道如下:將python-social-auth從0.1.17升級到0.2.4時,請求中未提供會話屬性到自定義管道方法?

SOCIAL_AUTH_PIPELINE = (
'social.pipeline.social_auth.social_details', 
'social.pipeline.social_auth.social_uid', 
'social.pipeline.social_auth.auth_allowed', 
'social.pipeline.social_auth.social_user', 
'social.pipeline.user.get_username', 
'social.pipeline.social_auth.associate_by_email', 
'social.pipeline.user.create_user', 
'social.pipeline.social_auth.associate_user', 
'social.pipeline.social_auth.load_extra_data', 
'social.pipeline.user.user_details', 
'useraccounts.models.create_user_profile' 
) 

當 'useraccounts.models.create_user_profile' 並不以下:

request = kwargs.get('request') 
do_something(session_key=request.session.session_key) 

以下錯誤出現:

'QueryDict' object has no attribute 'session' 

'請求'字典中包含以下關鍵元素:狀態,代碼,提示,會話狀態,自動查詢

我正在使用Django版本1.5.5。自從我將v0.1.17升級到v0.2.4以來,問題即將到來

+0

'request = kwargs.get('request')'不是'QuerySet',它的'QueryDict'。你可以這樣使用:'request ['session'] ['session_key']'。 –

+0

請求不具有任何名爲會話的密鑰,因此在更改訪問方法中沒有任何好處。雖然我試過並得到錯誤:MultiValueDictKeyError:「Key'session'found in Sid

+0

print result of request。 –

回答

1

https://github.com/omab/python-social-auth/issues/978

嘗試使用

strategy.request 

訪問Django的請求。

+0

這看起來很有趣,它應該在文檔中提到。此外,我的代碼能夠在升級之前從kwargs請求中獲得「會話」和「用戶」,那麼升級後爲什麼會發生這種情況? – Sid

+0

對不起,不能回答你的問題,這是我第一次使用這個模塊:)我的認證工作正常,你呢? –

+0

我實施了這個建議,現在一切正常。非常感謝 ! – Sid

相關問題