这是我的代码的一部分:
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'
答案 0 :(得分:1)
您应该在调度方法中执行所有权限检查。
可能你已经覆盖了它们以使用login_required进行装饰,所以在同一个地方继续进行权限检查并不会更糟。
<container qualifier="widlfly-remote" default="true">
...
</container>