python - Django 验证 def 不触发logging_in_success和logging_in_fail信号

标签 python django

当我通过函数进行身份验证时

从 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/

相关文章:

python - 如何在 python 中搜索文件中的字符?

python - 在opencv python中创建一个掩码并删除内部轮廓

python - Django if 语句未按预期工作

python - 在多选项卡破折号应用程序中将回调分配给组件的问题

javascript - 服务器上已登录用户与未登录用户的不同页面与 JavaScript

python - 使用 Django REST 框架获取 token

python - 匹配 EmbeddedDocumentList 中的 EmbeddedDocument

python - 哪种技术更适合构建基于 Web 的 GUI 客户端?

python - 如何根据 Django 中的用户从 CreateView 中删除字段?

python - Pyinstaller EXE 在启动时崩溃