每次用户从某些页面导航时,我都需要清除请求会话变量。
我正在考虑为此类事情编写自己的中间件,并在需要时实现 process_request 以清除变量。
你怎么看?
你知道更好的解决方案吗?
它会立即损害性能吗?
10倍
每次用户从某些页面导航时,我都需要清除请求会话变量。
我正在考虑为此类事情编写自己的中间件,并在需要时实现 process_request 以清除变量。
你怎么看?
你知道更好的解决方案吗?
它会立即损害性能吗?
10倍
您可以使用该request_finished
信号来检测 HTTP 请求并触发一个函数来获取当前页面的路径,以检查用户是否导航到不同的页面。如果他们有,那么您可以调用flush()
会话,或将特定会话 var 设置为 nil 等。
就像是:
from django.core.signals import request_finished
def check_url(request):
original_path = '/path_to_original_page'
if HttpRequest.get_full_path(request) != original_path:
request.session.flush()
request_finshed.connect(check_url, sender)