我有一个运行良好的django管理站点。 假设有一个名为Example的应用程序:
我们有意见:
@login_required
def example_index():
something...
return
网址是:
urlpattern = patterns("", url(r'^(\d+)/index/$', example_index))
在主要的url文件中,我们在urlpattern上面包含以下内容:
urlpatterns = patterns('', url(r'^example/', include(example.urlpattern)))
显然,我的文件中还有其他一些东西,但我想我已经提供了这个问题的所有相关代码。
用户登录后,用户可以访问url / hostname / example / 1001 / index /。它运作得很好。
然后问题是,在某些时候,当用户的会话已经过期时,如果用户尝试刷新页面,浏览器将返回404页面未找到(相同的网址:example / 1001 / index /)。
我的观点是,我希望django将用户重定向到登录页面,并将用户重定向回用户再次获得会话后的任何页面。此行为适用于django管理站点的其余部分,但不适用于此“示例”。
避免此崩溃的简单方法是删除装饰器:
@login_required
但我不想那样走。
有谁知道我应该怎样做才能使重新定位和重定向工作符合预期?
提前致谢。
答案 0 :(得分:1)
尝试在装饰器处添加login_url,以便在用户未登录时重定向。
@login_required(login_url='/login/')
使用您的登录网址替换登录信息。