在Django模板中,我尝试在使用urlize
函数后立即使用url
过滤器,这会生成一个网址并随后生成其<a>
标记。< / p>
不幸的是,使用(url myview)|urlize
和类似实验的各种尝试都不起作用。关于如何将各个部分放在一起以使其发挥作用的任何想法?
谢谢!
答案 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>