如何解决django-allauth 信号 user_signed_in 信号不起作用
我对 Django 比较陌生,并试图在登录时触发一个功能。我已经测试了该功能本身,它工作正常。 django-allauth 登录也正确配置。但是,我似乎无法在登录时触发以下信号。
请参阅下面的代码...任何帮助将不胜感激...
pages/apps.py
from django.apps import AppConfig
class PagesConfig(AppConfig):
name = 'pages'
def ready(self):
import apps.pages.signals
pages/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 中的一致,即
settings.py
INSTALLED_APPS = ['dir.appname',]
apps.py
from django.apps import AppConfig
class AppnameConfig(AppConfig):
name = 'dir.appname'
def ready(self):
import dir.appname.signals
init.py
default_app_config = 'dir.appname.apps.AppnameConfig'
以下文章有助于解决问题-
Django : Can't import 'module'. Check that module AppConfig.name is correct
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。