首页 > 解决方案 > 如何挂钩 django-allauth 信号?

问题描述

django-allauth 的信号页面:https ://django-allauth.readthedocs.io/en/latest/signals.html

我正在尝试挂钩 email_verified 信号:

allauth.account.signals.email_confirmed(request, email_address)

每当用户确认他们的电子邮件时,我什么也得不到。这是我的代码:

from allauth.account.signals import email_confirmed
from channels import Group

def send_to_user_socket(sender, **kwargs):
    Group('%s.get-started' % (kwargs['request'].user.username)).send({'text': json.dumps({'message': 'Email confirmed'})})

email_confirmed.connect(send_to_user_socket)

我究竟做错了什么?提前致谢。

编辑:这是我的 apps.py 代码:

from django.apps import AppConfig

class EngineConfig(AppConfig):
    name = 'engine'

    def ready(self):
        import engine.signals

标签: djangosignalsdjango-allauth

解决方案


我有类似的问题,但通过执行以下操作解决了

在特定应用程序的init .py 文件中,添加

default_app_config = "{enter_you_app_name}.apps.{Appname}Config"

例如

default_app_config = "authentication.apps.AuthenticationConfig"

也进口

from django.dispatch import receiver

@reciever(enter_the_correct_details)
def send_to_user_socket(sender, **kwargs):
    Group('%s.get-started' % (kwargs['request'].user.username)).send({'text': json.dumps({'message': 'Email confirmed'})})

email_confirmed.connect(send_to_user_socket)

推荐阅读