Django 添加消息到 auth_view

Django add message to auth_view

是否可以在 urls.py 中连同路径一起传递即时消息?

因为我没有将 auth_views 写入我的核心 views.py 文件,所以我认为可能有一种简单的方法可以将它与请求一起传递。我更愿意使用开箱即用的 auth_views,这样可以轻松更新我的 Django 版本。如果这是不可能的,那么我不会试图强迫它。检查了 documentation 但没有找到任何关于消息的信息。

path('logout/', auth_views.logout, {'next_page': auth_views.login}, name='logout'),

我想传递类似于下面消息的内容,这样就不会让人觉得他们是无意中点击了登录之类的。

'messages.success(request, 'You have securely logged out of {{request.user.email}}. Thank you for visiting.')

Django 有一个信号,您应该能够连接到该信号才能执行此操作;

from django.contrib.auth.signals import user_logged_out
from django.dispatch import receiver
from django.contrib import messages


@receiver(user_logged_out)
def on_user_logged_out(sender, request, user, **kwargs):
    if user:
        msg = 'You have securely logged out {email}. Thank you for visiting.'.format(email=user.email)
    else:
        msg = 'You have securely logged out. Thank you for visiting.'
    messages.add_message(request, messages.INFO, msg)