考虑以下情况:
有没有办法为不同的标签设置会话变量的不同值?或者针对这个问题的任何其他解决方案?
答案 0 :(得分:1)
没有简单的方法可以做到这一点,并不是特定于Django。检查这个问题:
How to differ sessions in browser-tabs?。
基于cookie的会话肯定不会起作用,因为cookie在特定网站的选项卡之间很常见。基于具有会话或本地存储的URL的解决方案有其自身的问题,并且通常这不是一个好主意,因为它增加了在大多数情况下不需要的复杂性。
在您的情况下,为什么不将列表存储为JavaScript数据或本地存储?在这种情况下,每个选项卡都有自己的数据。
答案 1 :(得分:0)
服务器应用程序通过会话ID识别您的请求和会话,这意味着它不知道选项卡等。事实上,如果你给我你的会话ID,我将获得相同的列表(请参阅会话劫持不要陷入这样的麻烦)。
话虽如此,如果您真的想这样做,您可以将用户代理保存到会话中,或者使用request.is_ajax()
您可以session['List'] = ...
和session
['List_ajax'] = ...`
然后你应该这样做:
如果request.is_ajax()else sessoion ['List']