在Django中的所有视图上添加一条消息



我想使用Django消息框架向访问我们网站的用户显示消息。这个想法是在他们查看的第一个页面上显示它,然后在用户会话的其余部分不再显示它。

我想它会像这样工作:

if request.session.get('show_welcome_message', True):
    messages.info(request, 'Welcome to our site!')
    request.session['show_welcome_message'] = False

我的问题是,在哪里添加它以在所有网站页面上显示它是最好的地方?

还有,有没有更好的方法可以做到这一点,即利用Django的本地消息向用户显示一条消息,如果用户关闭消息,他们将不会在同一会话中再次看到该消息?

您可以为此创建一个中间件。


的想法是在他们查看的第一个页面上显示它,然后在用户会话的其余部分不再显示它。

如果你对会话的想法是每次打开新的浏览器/选项卡。这句话可能没有帮助:request.session['show_welcome_message'] = False

这是因为django的会话在关闭浏览器后仍然存在事件。

我建议在客户端使用浏览器的SessionStorage和一些ajax来可靠地检查这是否是第一次访问。

最新更新