Django LogoutView 不发出 user_logged_out 信号
Django LogoutView does not emit user_logged_out signal
我有一个应用程序没有收到 user_logged_out
信号,理论上应该由 LogoutView
发送。
urls.py:
...
path('accounts/logout/',
auth_views.LogoutView.as_view(template_name='registration/logout.html'),
name='logout'),
...
myapp/signals.py
from django.contrib.auth import user_logged_out
from django.dispatch import receiver
@receiver(user_logged_out)
def extra_logout(sender, request, user, **kwargs):
# does some stuff
myapp/apps.py
from django.apps import AppConfig
class MyappConfig(AppConfig):
name = 'myapp'
def ready(self):
import myapp.signals
return super().ready()
请注意 myapp
已加载,其他一切正常。调用 accounts/logout/
时 Django 会话被破坏,但我的接收器从未收到信号。
我做错了什么?
Django 2.2.3,Python 3.7.3 mac。
刚刚尝试使用您的代码,缺少的部分可能是 __init__.py 文件中的 default_app_config = 'myapp.apps.MyappConfig'
行 myapp 文件夹。请检查它是否有效。
我有一个应用程序没有收到 user_logged_out
信号,理论上应该由 LogoutView
发送。
urls.py:
...
path('accounts/logout/',
auth_views.LogoutView.as_view(template_name='registration/logout.html'),
name='logout'),
...
myapp/signals.py
from django.contrib.auth import user_logged_out
from django.dispatch import receiver
@receiver(user_logged_out)
def extra_logout(sender, request, user, **kwargs):
# does some stuff
myapp/apps.py
from django.apps import AppConfig
class MyappConfig(AppConfig):
name = 'myapp'
def ready(self):
import myapp.signals
return super().ready()
请注意 myapp
已加载,其他一切正常。调用 accounts/logout/
时 Django 会话被破坏,但我的接收器从未收到信号。
我做错了什么?
Django 2.2.3,Python 3.7.3 mac。
刚刚尝试使用您的代码,缺少的部分可能是 __init__.py 文件中的 default_app_config = 'myapp.apps.MyappConfig'
行 myapp 文件夹。请检查它是否有效。