我在Django Rest Framework中使用rest_condition。 如果我的任何条件失败,我需要拒绝访问。我在视图上宣布了我的第一个许可:
permission_condition = CustomPermissions
其中覆盖了DRF权限方法has_permission
和has_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
中的条件的逻辑或理解不正确。
答案 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;
}