好的,有一个基于类的视图,将query_set
传递到我的AssignedToMe
类。这个基于类的视图的要点是查看用户是否已登录,如果是,他们可以转到页面,它将显示分配给其ID的所有记录。目前,它正在按照我的要求工作,但仅限用户登录。如果用户未登录,我收到以下错误'AnonymousUser' object is not iterable
。
如果没有用户登录,我希望它将用户重定向到登录页面。提前谢谢。请看截图
答案 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
或者,您可以选择decorate the url。
答案 1 :(得分:0)
我不知道你的ClassBasedView的上下文是什么......但你可以在调用你的类之前使用LoginRequiredMixin来要求登录:
class ServerDeleteView(LoginRequiredMixin, DeleteView):
model = Server
success_url = reverse_lazy('ui:dashboard')