Django url 传递任意数量的参数,以 / 分隔

如何定义 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')


弑天下
浏览 61回答 2
2回答

qq_花开花谢_0

我认为这是创建路径的错误方法,如果您想将其用作过滤器而不是在路径中使用它,则应该使用 url 参数作为 get 请求。但如果您坚持这样做,您可以使用正则表达式“re_path”# urls.pyfrom django.urls import path, re_pathfrom django.conf.urls import urlfrom myapp import viewsurlpatterns = [    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'),]

子衿沉夜

您考虑过使用query_params吗?那是path('test', views.test, name='test')网址:/test/?filter=asd...然后通过视图中的请求访问它:def&nbsp;test(request): &nbsp;&nbsp;&nbsp;&nbsp;params&nbsp;=&nbsp;request.GET.get('filter',&nbsp;None) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;HttpResponse()看看你是否能像这样解决你的问题:)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python