我想使用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来可靠地检查这是否是第一次访问。