相关疑难解决方法(0)

如何从BasePermission中访问URL参数?

我正在尝试编写自定义的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)

django django-rest-framework

7
推荐指数
2
解决办法
1886
查看次数

标签 统计

django ×1

django-rest-framework ×1