【发布时间】:2020-12-04 05:32:52
【问题描述】:
我有一个简单的网站,我需要解析这样的网址:
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/ 部分,如下所示:
path('products/', include('products.urls')),
基本上我想要的是让 django 匹配以 updateproduct 开头的任何路径并忽略任何 get 变量(?以及之后的所有内容)。这可能吗?
【问题讨论】:
-
查询参数(
?后面的东西)总是被路由器忽略。您可以通过request.GET在您的视图中访问它们。如果您想匹配以“updateproduct”开头的任何路径,您可以使用正则表达式并忽略剩余的字符串,例如path_re(r'^updateproduct/.*', views.updateProduct, name='updateproduct'), -
我想我明白你的意思,虽然我认为它在 django 中被称为 re_path