我正在为Django开发自己的基于角色的授权装饰器,并为每个角色编写了一些validation类。我的验证类目前正在接收request对象和view本身作为参数。但是对于某些角色,我需要从我的URL中提取一个client_id来验证一些规则。如何从Request对象中提取它作为键值对?我知道Django使用关键字参数将路径参数作为键值对注入,但我如何从请求中提取这些参数呢?
validation
request
view
client_id
Request
9avjhtql1#
您可以通过**.resolver_match属性[Django-doc]获取请求的位置和命名参数,然后使用ResolverMatch的.args[Django-doc]或.kwargs**[Django-doc]:
.resolver_match
ResolverMatch
.args
.kwargs
request.resolver_match.args # positional parameters (tuple) request.resolver_match.kwargs # named parameters (dictionary)
因此,如果你想访问client_id的值,你可以这样做:
request.resolver_match.kwargs['client_id']
1条答案
按热度按时间9avjhtql1#
您可以通过**
.resolver_match
属性[Django-doc]获取请求的位置和命名参数,然后使用ResolverMatch
的.args
[Django-doc]或.kwargs
**[Django-doc]:因此,如果你想访问
client_id
的值,你可以这样做: