如何在Django中获取请求路径对应的re_path名称参数?
获取Django中re_path对应的name参数值
你可以通过request.resolver_match对象获取当前请求匹配到的URL规则的name参数值,具体方法如下:
1. 在视图类/函数中获取
在你的UserListView类视图里,直接访问request.resolver_match.url_name就能拿到定义的name值:
class UserListView(View): def get(self, request): # 获取当前URL对应的name值,这里会返回'user_list' url_name = request.resolver_match.url_name # 你的业务逻辑代码 return HttpResponse(...)
如果你的URL配置使用了命名空间(比如include时指定namespace),可以用request.resolver_match.view_name获取完整的namespace:url_name格式字符串。
2. 在模板中获取
如果需要在模板里展示当前URL的name值,直接调用模板变量即可:
当前URL的name是: {{ request.resolver_match.url_name }}
说明
request.resolver_match是Django在完成URL解析后生成的对象,包含了当前请求匹配到的URL规则的所有元数据,其中url_name就是你在re_path里定义的name参数。这个属性不会直接出现在request的表层属性里,需要通过resolver_match访问。
内容的提问来源于stack exchange,提问作者Abdulkadir Koç
相关产品推荐
相关产品推荐

