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)
是否可以在 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)