2

我的大多数视图都需要登录。有没有办法指定所有视图或视图子集必须让用户 is_authenticated() = True 才能继续。如果没有,用户会被重定向到登录页面吗?

4

2 回答 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设置为 on AuthenticationMiddleware,因此在此之前放置您的自定义中间件将失败。
  • 您只能使用process_view在调用视图之前执行的方法

但是,不知何故;您必须制作一种类似于login free views的列表,但这不太可能,因为每次创建新视图时检查列表可能会有问题。另一方面,login_required装饰器就是这样工作的,它更容易使用......所以在做这样的事情之前你必须三思而后行,并考虑你是否 真的需要这样的东西。

这是自定义中间件的文档,这里是django 默认中间件类,这很重要,因为中间件类的顺序非常重要。

于 2012-05-18T23:10:52.223 回答