Django url传递未知数量的参数

2024-09-18 16:40:18 发布

您现在位置:Python中文网/ 问答频道 /正文

在Django中,我尝试将未知数量的参数传递给模板中的url。为了解释,我在网址.py例如

urlpatterns = [
    path('<str:arg1>/', views.foo1, name = 'url1'),
    path('<str:arg1>/<int:arg2>/', views.foo2, name = 'url2'),
]

在我的视图.py哦

def url1(request):
    return render(request, 'template1.html', {'arg1': arg1})

def url2(request):
    return render(request, 'template2.html', {'arg1': arg1, 'arg2': arg2})

要绑定到模板中a标记中的href属性,模板应该如下所示:

<!-- 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>

以及视图.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标记正确绑定链接?你知道吗


Tags: name模板urlreturnrequestdefhtmlargs