Min*_*nnR 0 django django-middleware django-signals django-authentication django-allauth
我想在用户登录我的网站后执行一项或多项功能。这怎么可能?我研究了中间件。Djangobook 说我需要它来对 Django 处理的每个请求运行一段代码。但是,我只需要在身份验证成功时运行代码。
注意:我使用 Django Allauth 进行身份验证,但我没有自己的任何视图来登录用户。
你需要利用 Allauth 的信号。特别是用户登录信号
Run Code Online (Sandbox Code Playgroud)allauth.account.signals.user_logged_in(request, user) Sent when a user logs in.
因此,在您的项目中添加类似于以下内容的代码。
from django.dispatch.dispatcher import receiver
from allauth.account.signals import user_logged_in
@receiver(user_logged_in, dispatch_uid="unique")
def user_logged_in_(request, user, **kwargs):
print request.user
Run Code Online (Sandbox Code Playgroud)
这段代码应该放在 django 启动时可能会被读取的地方。models.py 和 views.py 是不错的选择。
| 归档时间: |
|
| 查看次数: |
749 次 |
| 最近记录: |