我想知道是否有更好的解决方案。
我正在建立的网站有一些表格,需要有关用户开始他的'journy'页面的信息。现在我将HTTP_REFERER保存到会话中,稍后再使用它。 缺点是需要set_expiry(0)来清除浏览器关闭时的会话。我喜欢用户每次关闭浏览器时都不需要登录的行为。
我写了一个看起来像这样的小中间件类:
class RefererMiddleware(object):
def process_response(self, request, response):
try:
if not request.session.get('http_landingpage'):
request.session['http_landingpage'] = request.META.get('HTTP_REFERER')
request.session.set_expiry(0)
except Exception:
pass
return response
有任何改进建议吗?其他解决方案?
答案 0 :(得分:1)
setting a cookie怎么样,它将在浏览器关闭时到期。您可以在中间件中执行此操作,最后会话将保持不变。
#Usage: response.set_cookie( 'cookie_name', 'cookie_value' )
class RefererMiddleware(object):
def process_response(self, request, response):
if not request.COOKIES.has_key( 'HTTP_REFERER' ):
response.set_cookie( 'HTTP_REFERER', request.META.get('HTTP_REFERER') )
return response