【发布时间】:2013-10-09 14:47:49
【问题描述】:
在 Django 模板中,我尝试在使用 url 函数之后使用 urlize 过滤器,该函数正在生成一个 url 并随后生成其 <a> 标记。
不幸的是,使用(url myview)|urlize 的各种尝试和类似的实验都没有奏效。关于如何将各个部分组合在一起以使事情发挥作用的任何想法?
谢谢!
【问题讨论】:
标签: python django templates url urlize
在 Django 模板中,我尝试在使用 url 函数之后使用 urlize 过滤器,该函数正在生成一个 url 并随后生成其 <a> 标记。
不幸的是,使用(url myview)|urlize 的各种尝试和类似的实验都没有奏效。关于如何将各个部分组合在一起以使事情发挥作用的任何想法?
谢谢!
【问题讨论】:
标签: python django templates url urlize
这不是urlize 的用途。它用于在文本块中搜索 URL 并将它们转换为可点击的链接。 {% url %} 的结果甚至看起来不像一个链接,因为它是一个相对链接(例如 /index/ 而不是 www.example.com/index),并且文档非常具体地说明了 urlize 查找的内容:
此模板标签适用于前缀为
http://、https://或www.的链接。
不知道你为什么想要它:自己定义链接很简单:
This is my link: <a href="{% url 'myview' %}">My view</a>
【讨论】:
您需要将 url 分配给一个变量,如下所示:
{% url "myview" as my_url %}
{{ my_url|urlize }}
您也可以直接使用{% filter %} 来完成相同的操作,而无需先分配:
{% filter urlize %}{% url "myview" %}{% endfilter %}
对于上面的海报,做任何这些都没有多大意义。为什么不自己创建超链接,而不是依靠过滤器将 url 转换为超链接?
<a href="{% url "myview" %}">{% url "myview" %}</a>
【讨论】: