python - django-allauth 信号 user_signed_in 信号不起作用
问题描述
我对 django 比较陌生,并试图在登录时触发一个功能。我已经测试了函数本身,它工作正常。django-allauth 登录也正确配置。但是,我似乎无法在登录时触发以下信号。
请参阅下面的代码...任何帮助将不胜感激...
页面/apps.py
from django.apps import AppConfig
class PagesConfig(AppConfig):
name = 'pages'
def ready(self):
import apps.pages.signals
页面/signals.py
from allauth.account.signals import user_logged_in
from django.dispatch.dispatcher import receiver
from django.utils import timezone
from datetime import timedelta
from .models import Token
@receiver(user_logged_in)
def user_logged_in_(request, user, **kwargs):
is_valid = Token.objects.filter(valid_until__gte=timezone.now() + timezone.timedelta(seconds=10800)).values()
if not is_valid:
new = Token(token='valid', valid_until=timezone.now())
else:
new = Token(token='not valid', valid_until=timezone.now())
new.save()
解决方案
经过网上大量挖掘后设法解决了这个问题......
您需要使用应用程序的完整 python 路径。这需要与 settings.py、apps.py 和init .py 中的一致,即
设置.py
INSTALLED_APPS = ['dir.appname',]
应用程序.py
from django.apps import AppConfig
class AppnameConfig(AppConfig):
name = 'dir.appname'
def ready(self):
import dir.appname.signals
初始化.py
default_app_config = 'dir.appname.apps.AppnameConfig'
以下文章有助于解决问题 -
推荐阅读
- python - 如何为 vscode 的数据科学模式设置环境变量?
- python - 检查对象是否是库的实例
- python-2.7 - 'QWidget' 对象没有属性 'set_status_message'
- android - 如何将数据从广播接收器发送到片段?
- android - 如何修复 ListView 上的 OnItemClickListener
- python - 如何从功率计上的原始数据计算能量读数
- apache-kafka - Kafka 代理自动扩展
- xamarin - 任何人都可以推荐一个很好的 XAMARIN Forms (3.3/4) 与 SignalR 集成以用于聊天目的的教程吗?
- javascript - 为什么console.log 有时工作而有时不工作?
- python - 来自 Pandas 数据框 groupby 的 Matplotlib 绘图图