在Django中,我试图将未知数量的参数传递给模板中的url。为了说明,我在urls.py中有urlpatterns,例如
urlpatterns = [
path('<str:arg1>/', views.foo1, name = 'url1'),
path('<str:arg1>/<int:arg2>/', views.foo2, name = 'url2'),
]
在我的views.py中,
def url1(request):
return render(request, 'template1.html', {'arg1': arg1})
def url2(request):
return render(request, 'template2.html', {'arg1': arg1, 'arg2': arg2})
要绑定到模板中href
标签中的a
属性,模板应类似于:
<!-- In template1.html -->
<a href = "{% url url1 arg1 %}">Link</a>
<!-- In template2.html -->
<a href = "{% url url2 arg1 arg2 %}">Link</a>
在这种情况下,我想像下面这样将template1.html
和template2.html
合并到template.html
中:
<a href = "{% url url_name url_args %}">Link</a>
and views.py:
def url1(request):
args = {
'url_name': url1,
'url_args': (arg1, ),
}
return render(request, 'template.html', args)
def url2(request):
args = {
'url_name': url2,
'url_args': (arg1, arg2),
}
return render(request, 'template.html', args)
如何将url_args
传递给模板?我尝试在元组,列表和字典中传递url_args
。但这不会正确匹配。我应该如何传递url_args
和template.html
中的代码来制作a
标签,以正确地绑定链接?