我開始使用django_openid_auth(https://launchpad.net/django-openid-auth),它工作得很好。django:連接到現有信號失敗
我設法連接到我的openid提供程序並獲得用戶身份驗證。事情是,在django_open_auth.views.login_complete有此塊:
if user is not None:
if user.is_active:
auth_login(request, user)
response = HttpResponseRedirect(sanitise_redirect_url(redirect_to))
# Notify any listeners that we successfully logged in.
openid_login_complete.send(sender=UserOpenID, request=request,
openid_response=openid_response)
return response
else:
return render_failure(request, 'Disabled account')
通知的#notify評論。
我創建Django的OpenID的身份驗證OpenIDBackend類的我自己OpenIdBackend子類,並把它放到我自己的項目
的core.authentication.openidbackend在該文件中有: 從django_openid_auth.signals導入openid_login_complete
def update_request(sender, **kwargs):
logger.debug('test')
openid_login_complete.connect(update_request)
但是,該調試行從不出現在日誌中。
那麼我做錯了什麼?我檢查了一些其他django信號線程,其中一個表示導入必須完全相同,否則連接不會出現。
但我怎麼能調試呢?問題在哪裏 - 連接是否永遠不會發生,因爲我把連接插入錯誤的地方或者是其他地方的問題?我怎麼能找到這個?
Alan
編輯:我嘗試了一次建議,我得到它的工作。我將信號放入單獨的文件中,將其導入到正確的位置,並遵循karthikr(https://stackoverflow.com/users/1628832/karthikr)給出的建議。我還注意到,我的記錄器沒有使用正確的日誌記錄conf,所以一切都可能在早些時候工作,只是記錄不起作用。
所以耶:)。當你感覺不舒服時不應該工作:)。謝謝你們的幫助。
更改'openid_login_complete。連接(update_request)'到'openid_login_complete.connect(update_request,instance)'它期待一個發送者實例。 – karthikr
對不起,但我不太明白,你想訂閱'openid_login_complete'信號嗎? –
是的,我想在信號上升(發送,觸發,無論)之後做些什麼。 –