当我通过函数进行身份验证时
从 django.contrib.auth 导入验证
如果我使用该函数,Djnago 不会触发成功/失败信号
从 django.contrib.auth 导入登录
它将按预期触发。基本上我想从以下函数触发信号
user = authenticate(username=username, password=password)
现在我在代码中添加了额外的行
login(request, user)
添加此后,我在这里收到信号
from django.contrib.auth.signals import (
user_logged_in,
user_login_failed,
)
我怎样才能从authenticate def获取信号?我正在将其用于 API
最佳答案
Django 不会从 authenticate
发送 user_logged_in
信号。如您所见,它从 login
发送它 here 。但是,您始终可以自己触发信号。
from django.contrib.auth import authenticate, user_logged_in
user = authenticate(username=username, password=password)
user_logged_in.send(sender=user.__class__, request=request, user=user)
或者编写一个同时执行这两种操作的函数。
关于python - Django 验证 def 不触发logging_in_success和logging_in_fail信号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60319368/