我在登录后实施了Django信号处理某些操作,但我也希望能够取消登录操作:
我有这个:
@receiver(user_logged_in)
def my_signal(sender, **kwargs):
request, user = kwargs['request'], kwargs['user']
# some actions
我想要这样的事情:
@receiver(user_logged_in)
def my_signal(sender, **kwargs):
request, user = kwargs['request'], kwargs['user']
if "any validation" == True:
# some actions
else:
# cancel login
这可能吗?如果是这样,我该怎么办?好吧,您可以认为我可以在致电auth.login(request, user)
之前进行验证,但请告知我是否可行。提前谢谢。
答案 0 :(得分:0)
您可以在技术上使用logout(request)
来执行您想要的操作:https://docs.djangoproject.com/en/1.6/topics/auth/default/#django.contrib.auth.logout
由于您似乎可以访问request
中的my_signal
对象,因此您应该可以这样做。
然而,这可能不是达到你想要的最佳方式。您不应该首先对用户进行身份验证,而不是对其进行身份验证,登录,然后将其启动。