如何定义 URL 模式,以便可以向 URL 传递所需数量的参数?我确实研究了文档和其他 stackoverflow 问题,但没有找到类似的内容。我需要它作为电子商务网站的过滤器。我想实现这样的目标:urlpatterns = [ path('test/<str:var1>-<str:var2>/<str:var3>-<str:var4>/...', views.test, name='test'),]在我的视图函数中,我会这样定义它:def test(request, *args, **kwargs): # Do whatever you want with kwargs return HttpResponse('Test')
2 回答
![?](http://img1.sycdn.imooc.com/54dc06a60001ef0401000100-100-100.jpg)
qq_花开花谢_0
TA贡献1835条经验 获得超7个赞
我认为这是创建路径的错误方法,如果您想将其用作过滤器而不是在路径中使用它,则应该使用 url 参数作为 get 请求。
但如果您坚持这样做,您可以使用正则表达式“re_path”
# urls.py
from django.urls import path, re_path
from django.conf.urls import url
from myapp import views
urlpatterns = [
re_path(r'^test/(?P<path>.*)$', views.test, name='test'),
# or use url instead it's same thing
url(r'^test/(?P<path>.*)$', views.test, name='test'),
]
![?](http://img1.sycdn.imooc.com/533e4c420001b2e502000200-100-100.jpg)
子衿沉夜
TA贡献1828条经验 获得超3个赞
您考虑过使用query_params
吗?
那是path('test', views.test, name='test')
网址:/test/?filter=asd...
然后通过视图中的请求访问它:
def test(request): params = request.GET.get('filter', None) return HttpResponse()
看看你是否能像这样解决你的问题:)
添加回答
举报
0/150
提交
取消