我的大多数视图都需要登录。有没有办法指定所有视图或视图子集必须让用户 is_authenticated() = True 才能继续。如果没有,用户会被重定向到登录页面吗?
问问题
302 次
2 回答
2
https://docs.djangoproject.com/en/1.4/topics/auth/#the-login-required-decorator
from django.contrib.auth.decorators import login_required
@login_required
def my_view(request):
...
于 2012-05-18T22:38:36.140 回答
1
如果你愿意,你必须遵守一些规则,
request.user
设置为 onAuthenticationMiddleware
,因此在此之前放置您的自定义中间件将失败。- 您只能使用
process_view
在调用视图之前执行的方法
但是,不知何故;您必须制作一种类似于login free views的列表,但这不太可能,因为每次创建新视图时检查列表可能会有问题。另一方面,login_required
装饰器就是这样工作的,它更容易使用......所以在做这样的事情之前你必须三思而后行,并考虑你是否 真的需要这样的东西。
这是自定义中间件的文档,这里是django 默认中间件类,这很重要,因为中间件类的顺序非常重要。
于 2012-05-18T23:10:52.223 回答