如何从Django Request对象中提取路径参数?

lnvxswe2  于 2023-05-30  发布在  Go
关注(0)|答案(1)|浏览(183)

我正在为Django开发自己的基于角色的授权装饰器,并为每个角色编写了一些validation类。
我的验证类目前正在接收request对象和view本身作为参数。
但是对于某些角色,我需要从我的URL中提取一个client_id来验证一些规则。
如何从Request对象中提取它作为键值对?
我知道Django使用关键字参数将路径参数作为键值对注入,但我如何从请求中提取这些参数呢?

9avjhtql

9avjhtql1#

您可以通过**.resolver_match属性[Django-doc]获取请求的位置和命名参数,然后使用ResolverMatch.args[Django-doc]或.kwargs**[Django-doc]:

request.resolver_match.args    # positional parameters (tuple)
request.resolver_match.kwargs  # named parameters (dictionary)

因此,如果你想访问client_id的值,你可以这样做:

request.resolver_match.kwargs['client_id']

相关问题