我开始使用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'信号吗? –
是的,我想在信号上升(发送,触发,无论)之后做些什么。 –