带有变量django模板的动态网址

时间:2016-04-28 10:28:14

标签: python django django-views django-urls

我正在尝试根据页面列表构建一个动态的网址列表。

在我的urls.py中,整个应用程序位于命名空间base

之后
urlpatterns = patterns('',
    url(r'^(?P<pk>[\w]+)/title/$', TitleSection.as_view(), name='title'),
    url(r'^(?P<pk>[\w]+)/amount/$', AmountSection.as_view(), name='amount'),
    url(r'^(?P<pk>[\w]+)/description/$', DescriptionSection.as_view(), name='description'), )

在我的context数据中,我有以下列表:

sections: ['title', 'amount', 'description']

我正在尝试为各个部分中的每个元素构建网址。

我尝试了以下内容:

{% for section in sections %}
    <a href="{% url "base:"+section pk=object.id %}">..</a>
{% endfor %}

但是我收到了以下错误:

  

无法解析余数:来自'“base:”+ section'

的'+ section'

然后我尝试了:

<a href="{% url "base:{{section}}" pk=project.id %}">{{ section }}</a>

错误:

  

使用参数'()'和关键字参数'{u'pk':77}'找不到'{{section}}'的反转。尝试了0种模式:[]

你知道怎么做吗?

2 个答案:

答案 0 :(得分:10)

您可以使用add template filter

{% url "base:"|add:section pk=project.id %}

答案 1 :(得分:1)

对于我的情况也有效

{% for section in sections %}
<a href="{% url "base" pk=object.id %}">..</a>
{% endfor %}

网址格式在哪里

url=[
path('base/<pk>/',base,name='base'),
]