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 文件夹。请检查它是否有效。