我目前正在使用 django 开发一个应用程序,每次在渲染视图或模板时出现错误,我的会话都会被注销。这最终很烦人。如何禁用此“功能”?请注意,如果在加载/解析代码时出现错误(例如,如果视图上的装饰器失败),我不会被注销,只有在视图中出现错误时。
编辑:我刚刚测试过,是的,从某种意义上说raise Exception
确实会导致这种情况。
我所有的观点都被一个装饰器包裹着,其中包括:
def needs_base_index_dict(func):
def wrapper(request, *args, **kwargs):
request.session.set_expiry(30*60)
#...
如果我注释掉该set_expiry
行,那么我不会得到这种行为。当我修复错误时,我仍然处于登录状态。如果该行没有被注释掉,那么视图中的任何错误(包括raise Exception()
)都会注销会话。