我正在尝试在模板中实现一些面包屑。
我有些人认为网址有一个参数,其他两个参数。
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> >
答案 0 :(得分:1)
inclusion tag很可能会做你正在寻找的事情。
包含标记可以接受当前模板上下文,您可以从那里检索视图值,而不必手动传入它们。通过包含包含div,锚标记等的模板,您可以简化模板: / p>
{% tag_url %}
而不是必须重复一堆条件语句和循环。
我不建议在视图中使用这种逻辑,因为它没有封装或可重复使用。