Django网址传递了未知数量的参数

时间:2018-06-19 22:16:44

标签: python django url

在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.htmltemplate2.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_argstemplate.html中的代码来制作a标签,以正确地绑定链接?

0 个答案:

没有答案