如何在模板的url函数上使用urlize过滤器?

时间:2013-10-09 14:47:50

标签: python django templates url urlize

在Django模板中,我尝试在使用urlize函数后立即使用url过滤器,这会生成一个网址并随后生成其<a>标记。< / p>

不幸的是,使用(url myview)|urlize和类似实验的各种尝试都不起作用。关于如何将各个部分放在一起以使其发挥作用的任何想法?

谢谢!

2 个答案:

答案 0 :(得分:3)

那不是urlize的用途。它用于在文本块中搜索URL并将其转换为可单击的链接。 {% url %}的结果甚至看起来不像是一个链接,因为它是一个相对链接(例如/index/而不是www.example.com/index),以及文档关于urlize寻找的内容非常具体:

  

此模板标记适用于以http://https://www.为前缀的链接。

不知道为什么你还要这么做:自己定义链接是微不足道的:

This is my link: <a href="{% url 'myview' %}">My view</a>

答案 1 :(得分:2)

您需要将url分配给变量,如下所示:

{% url "myview" as my_url %}
{{ my_url|urlize }}

您也可以使用{% filter %}完成相同操作而不先分配:

{% filter urlize %}{% url "myview" %}{% endfilter %}

通过上面的海报,做这些事情并没有多大意义。你为什么不创建超链接本身而不是依靠过滤器从网址转换为超链接?

<a href="{% url "myview" %}">{% url "myview" %}</a>