在这种情况下如何使用HttpResponseForbidden?

时间:2015-05-28 08:13:46

标签: python django django-views

这是我的代码的一部分:

def get_queryset(self):
    if self.request.user.links.filter(pk=self.kwargs['pk']).exists():
        return super(View, self).get_queryset()
    else:
        return HttpResponseForbidden()

我想检查用户是否访问了他或她的链接,如果没有返回HttpResponseForbidden。 我的代码与raise PermissionDenied很好用,但我读过这个不好的做法。

如何使我的视图与HttpResponseForbidden一起使用?

修改: 如果我使用HttpResponseForbidden(),我会抓住'HttpResponseForbidden' object has no attribute 'filter'

1 个答案:

答案 0 :(得分:1)

您应该在调度方法中执行所有权限检查。

可能你已经覆盖了它们以使用login_required进行装饰,所以在同一个地方继续进行权限检查并不会更糟。

<container qualifier="widlfly-remote" default="true">
   ...
</container>