首页 > 解决方案 > Django忽略路径中的获取参数

问题描述

我有一个简单的网站,我需要解析这样的网址:

http://127.0.0.1:8000/products/updateproduct?id=1

所以我为它写了以下django路径:

path('updateproduct?id=<int:id>', views.updateProduct, name='updateproduct'),

我也试过这样:

path('updateproduct', views.updateProduct, name='updateproduct'),

这两个路径都附加到/product/url 的一部分,如下所示:

path('products/', include('products.urls')),

基本上我想要的是让 django 匹配任何以开头的路径updateproduct并忽略任何 get 变量(?以及之后的所有内容)。这可能吗?

标签: djangourlpath

解决方案


将 url 与视图匹配时,django 会自动忽略查询。

所以:

http://127.0.0.1:8000/products/updateproduct?id=1 && http://127.0.0.1:8000/products/updateproduct?id=10&name=value

两者都将由同一个视图处理。

如果要访问视图中的查询,则需要使用

request.GET['id']
# or
request.GET.get('id')

推荐阅读