基于类的视图在Django中获取用户身份验证

时间:2016-07-22 01:59:02

标签: python django class authentication request

好的,有一个基于类的视图,将query_set传递到我的AssignedToMe类。这个基于类的视图的要点是查看用户是否已登录,如果是,他们可以转到页面,它将显示分配给其ID的所有记录。目前,它正在按照我的要求工作,但仅限用户登录。如果用户未登录,我收到以下错误'AnonymousUser' object is not iterable
如果没有用户登录,我希望它将用户重定向到登录页面。提前谢谢。请看截图

2 个答案:

答案 0 :(得分:1)

您可以创建一个需要登录的mixin,以便在ClassBasedViews中使用,如下所示:

from django.utils.decorators import method_decorator
from django.contrib.auth.decorators import login_required

class LoginRequiredMixin(object):
   @method_decorator(login_required)
   def dispatch(self, request, *args, **kwargs):
       return super(LoginRequiredMixin, self).dispatch(request, *args, **kwargs)

然后像@M一样使用它。加拉建议(这应该是第一件事)。另外,请确保您在LOGIN_URL

中定义了settings.py

参考:decorating the class

或者,您可以选择decorate the url

答案 1 :(得分:0)

我不知道你的ClassBasedView的上下文是什么......但你可以在调用你的类之前使用LoginRequiredMixin来要求登录:

class ServerDeleteView(LoginRequiredMixin, DeleteView): model = Server success_url = reverse_lazy('ui:dashboard')

相关问题