【发布时间】:2015-05-16 04:39:15
【问题描述】:
我正在尝试在我的模板中实现一些面包屑。
我有些视图 url 采用一个参数,而另一些则采用两个。
url(r'^firstpage/(?P<arg_one>(option1|option2))/(?P<unique_identidfier>[ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890\-_]+)/', views.MyView.as_view(), name="two_arg_view"),
url(r'^secondpage/(?P<unique_identidfier>[ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890\-_]+)/', views.MySecondView.as_view(), name="one_arg_view),
我想通过 get_context_data 传入一个面包屑数组,然后在模板中循环它们:
<div class="breadcrumbs">
{%for crumb in breadcrumbs %}
<a href="{% url crumb.url arg1 optional_arg2 %}" >{{ crumb.text }}</a> >
{% endfor %}
{{ current_page }}
</div>
有没有办法可以将可选数量的参数传递给 url 模板标签?
就像用 *args 调用某些东西时一样?
我想做的(但不起作用)是:
<a href="{% url crumb.url *crumb.args %}" >{{ crumb.text }}</a> >
【问题讨论】:
-
您应该在视图中执行此操作,然后将 args 作为上下文变量传递给您的模板。到那时,您绝对可以遍历它们。
-
我应该在视图中做什么?生成网址文本?如果我沿着这条路线走,感觉就像我最终会将显示逻辑放在视图中。
标签: django templates django-templates