Python 如何授予管理员和作者在django中查看特定页面的权限?

Python 如何授予管理员和作者在django中查看特定页面的权限?,python,django,Python,Django,现在我的代码只允许它的原始作者查看特定的页面。若作者id和用户id不相同,那个么它将返回404页。这是我的密码: def get_object(self): obj = super(BlogListMyAccount,self).get_object() if obj.author != self.request.user: raise PermissionDenied return obj

现在我的代码只允许它的原始作者查看特定的页面。若作者id和用户id不相同,那个么它将返回404页。这是我的密码:

def get_object(self):
          obj = super(BlogListMyAccount,self).get_object()
          if obj.author  != self.request.user:
              raise PermissionDenied      
          return obj 
如何添加上述代码的管理员权限。因此管理员也可以查看页面。

使用您的示例:

def get_object(self):
    obj = super(BlogListMyAccount,self).get_object()
    if obj.author  != self.request.user and not self.request.user.is_superuser:
       raise PermissionDenied      
    return obj
通常这是检查用户是否具有管理员权限的方式:
request.user.is\u superuser

参考资料:


发布一些代码。。尤其是呈现个人博客帖子的视图。我还尝试使用
和self.request.user.is\u superuser
,但没有成功。添加后,不象您提到的那样工作。你能解释一下为什么在添加not后它还能工作吗。通常不意味着他不是超级用户。@boyenec感谢投票并接受了答案。在这种情况下,我们说的是“如果这两个条件为真,它只会引发PermissionDenied”。只有当“用户不是作者也不是管理员”时,才会引发错误。如果您不在self.request.user.is_superuser之前使用NOT,则表示如果“用户不是作者,用户是管理员”,或反之亦然,则会引发错误,而这不是您想要的。希望这个解释有帮助。