我正在尝试编写自定义的rest_framework权限,以防止用户查询与他们不属于同一公司的信息.不幸的是,我似乎无法访问任何URL的参数从内部has_permission()或has_object_permissions().
这是我的路由器的开头:
# Create a basic router
router = routers.SimpleRouter()
# Establish some variables to assist with nested routes
root_elem = 'companies'
root_elem_id = '/(?P<company_id>[0-9]+)'
loca_elem = '/locations'
loca_elem_id = '/(?P<location_id>[0-9]+)'
# Companies will be the root from which all other relations branch
router.register(r'' + root_elem, views.CompanyViewSet)
router.register(r'' + root_elem + root_elem_id + loca_elem,
views.LocationViewSet)
Run Code Online (Sandbox Code Playgroud)
这是我的自定义权限:
# Only permit actions originating from location managers or company admins
class IsLocationManagerOrHigher(BasePermission):
# Checked when displaying lists of records …Run Code Online (Sandbox Code Playgroud)