Django:在模板中引用url名称并传递参数

时间:2016-06-01 11:20:23

标签: django

我知道您可以在模板中引用网址名称,这样您就无需在模板中硬编码,只要您想要更改它们。

例如,在模板中,我使用:

<a href="{% url 'urlname' parameter %}">The link</a>

我的问题是,如果我想传递一个更复杂的参数来在url正则表达式中使用。在我的例子中,我想传递由&#34; _&#34;分隔的两个字符串的串联。这些字符串来自Python对象,我不知道如何做到这一点。例如,让我们说这些字符串是用户的名字和姓氏。

我试过了:

<a href="{% url 'urlname' "user.firstname_user.lastname" %}">The link</a>

其他技巧但没有效果。

有人可以帮忙吗?

2 个答案:

答案 0 :(得分:3)

简单地说,你不是。

您要么调整您的网址以拥有两个捕获组(这也需要稍微更改一下视图)

url(r'(?P<first_name>\w+)_(?P<last_name>\w+)/$', view_name, name='url_name')
{% url 'urlname' user.firstname user.lastname %}

或者你只是找到一个足够的网址。

答案 1 :(得分:0)

请查看此thread。假设您正在使用正位论证,那么对您来说是个好答案:

<a href="{% url 'urlname' parameter=user.firstname_user.lastname %}">The link</a>

假设你的网址是这样的:

url(r'^urlname/(?P<parameter>(catching regexp))$',...)