Django:如何在include模板标签中正确传递URL?

时间:2017-12-23 13:27:51

标签: python django django-templates

在两个不同的模板中,我有两个几乎相同的块,只有网址不同:

template1.html

<div class="col-sm-4">
    <a href="{% url 'bo:article-list' %}" class="btn btn-block btn-secondary btn-sm"
       role="button">
        <i class="fa fa-chevron-left"></i> Annuler
    </a>
</div>

template2.html

<div class="col-sm-4">
    <a href="{{ article.get_absolute_url }}" class="btn btn-block btn-secondary btn-sm"
       role="button">
        <i class="fa fa-chevron-left"></i> Annuler
    </a>
</div>

我想让它变干,创建一个模板,然后制作一个包含。 例如:

_cancel.html

<div class="col-sm-4">
<a href="{{ cancel_url }}" class="btn btn-block btn-secondary btn-sm"
   role="button">
    <i class="fa fa-chevron-left"></i> Annuler
</a>

对于 template2.html ,它适用于:

{% include 'includes/_cancel.html' with cancel_url=article.get_absolute_url %}

template1.html 怎么样? 这显然不起作用:

{% include 'includes/_cancel.html' with cancel_url={% url 'bo:article-list' %} 

我想有一招。谢谢你的帮助:)

1 个答案:

答案 0 :(得分:1)

url标记可用于使用as将结果保存到上下文变量。

{% url 'bo:article-list' as cancel_url %}

现在您可以将其传递给您的包含标签。