Django:URL 中的多个参数在没有查询字符串或捕获参数的情况下反向解析
Django: Multiple parameters in URLs reverse resolution without querystrings or captured parameters
不使用查询字符串(如 ?case=/2/),也不在 url conf 中捕获参数(如 ?P)(因此它们不会出现在 url 中),
使用 URL 反向解析时,有没有办法将参数传递给视图函数?
希望一个例子能澄清我的问题:
使用捕获的参数我可以做:
views.py
...
return HttpResponseRedirect(反向('videos:show_details', args=[video.id]))
urls.py
...
url(r'^club/(?P\d+)/$',views.details,姓名='show_details'),
...
但是如果查看详情需要/接受更多参数怎么办,例如:
def 详细信息(请求,video_id,导演='',show_all=True):
我们不希望他们出现在 url?
有没有在 url 中使用 args 或 kwargs 的方法?
我确定我在这里遗漏了一些微不足道的东西 :S
希望有人能指出我正确的方向。
谢谢!
我不确定这就是你的意思,但你可以将额外的参数传递给 url 模式。这允许指向同一视图的多个 url 使用不同的参数:
url(r'^club/(?P<pk>\d+)/$', views.details, kwargs={'show_all': False}, name='show_details')
不使用查询字符串(如 ?case=/2/),也不在 url conf 中捕获参数(如 ?P)(因此它们不会出现在 url 中), 使用 URL 反向解析时,有没有办法将参数传递给视图函数?
希望一个例子能澄清我的问题:
使用捕获的参数我可以做:
views.py ... return HttpResponseRedirect(反向('videos:show_details', args=[video.id]))
urls.py ... url(r'^club/(?P\d+)/$',views.details,姓名='show_details'), ...
但是如果查看详情需要/接受更多参数怎么办,例如:
def 详细信息(请求,video_id,导演='',show_all=True):
我们不希望他们出现在 url?
有没有在 url 中使用 args 或 kwargs 的方法?
我确定我在这里遗漏了一些微不足道的东西 :S
希望有人能指出我正确的方向。 谢谢!
我不确定这就是你的意思,但你可以将额外的参数传递给 url 模式。这允许指向同一视图的多个 url 使用不同的参数:
url(r'^club/(?P<pk>\d+)/$', views.details, kwargs={'show_all': False}, name='show_details')