Django Rest条件给出了意想不到的结果

时间:2016-04-15 12:55:45

标签: python django python-2.7 django-rest-framework

我在Django Rest Framework中使用rest_condition如果我的任何条件失败,我需要拒绝访问。我在视图上宣布了我的第一个许可:

permission_condition = CustomPermissions

其中覆盖了DRF权限方法has_permissionhas_object_permission

CustomPermissions

 def has_permission(self, request, view):
     return True

 def has_object_permission(self, request, view, obj):
     return False

这在访问详细信息端点时有效:

结果:

> CustomPermissions
     - has_permission = True
     - has_object_permission = False
Result Expected Access defined : Actual Result Access defined - worked

但是,当我添加第二个权限时,我没有得到预期的结果。我期待它,为什么?

permission_condition = (C(permissions.IsAdminUser) | C(CustomPermissions))

IsAdminUser

def has_permission(self, request, view):
    return False

结果:

> CustomPermissions
     - has_permission = True
     - has_object_permission = False
> IsAdminUser
     - True
Result Expected Access defined : Actual Result Access to view granted. 

可以假设我对permission_condition中的条件的逻辑或理解不正确。

1 个答案:

答案 0 :(得分:0)

问题是条件中的逻辑,低于工作。

    #cat {
    padding:0;
    margin:0 1em;
    font-size:1.2em;
    background:red;
    }

    #dog {
    padding:0;
    margin:0 1em;
    font-size:1.2em;
    background:red;
    }