我有一个像
这样的网址配置 url(r'^user/(?P<id>[0-9]+)/$', UserView.as_view())
和
这样的视图类class UserView(GenericAPIView):
serializer_class = UserSerializer
permission_classes = [MyCustomPermission]
def get(self, request, id):
# code...
许可就像
class MyCustomPermission(BasePermission):
def has_permission(self, request, view, *args, **kwargs):
# code
如何访问id
中的MyCustomPermission
?我无法从request
或*args
或*kwargs
找到它。文档没有说明这一点。我试图查看源代码,但无法找到如何访问这些命名的url参数。它甚至可能吗?
答案 0 :(得分:3)
这是错误的做法。您应该使用object-level permissions并在权限类中检查has_object_permission
,而不是尝试在那里访问关键字参数。
答案 1 :(得分:3)
您可以从view.kwargs访问。
答案 2 :(得分:0)
您可以在以下位置找到它们:
request.resolver_match.kwargs.get('..')