【问题标题】:how to use the urlize filter on the templates' url function?如何在模板的 url 函数上使用 urlize 过滤器?
【发布时间】:2013-10-09 14:47:49
【问题描述】:

在 Django 模板中,我尝试在使用 url 函数之后使用 urlize 过滤器,该函数正在生成一个 url 并随后生成其 <a> 标记。

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

谢谢!

【问题讨论】:

    标签: python django templates url urlize


    【解决方案1】:

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

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

    不知道你为什么想要它:自己定义链接很简单:

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

    【讨论】:

    • 您好,感谢您的提示。您知道从视图名称自动创建链接的任何方法吗?因为这就是我想要的,使用 urlize 过滤器的良好自动化。
    【解决方案2】:

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

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

    您也可以直接使用{% filter %} 来完成相同的操作,而无需先分配:

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

    对于上面的海报,做任何这些都没有多大意义。为什么不自己创建超链接,而不是依靠过滤器将 url 转换为超链接?

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

    【讨论】:

      猜你喜欢
      • 2011-09-13
      • 2017-11-11
      • 2012-02-16
      • 2012-08-28
      • 1970-01-01
      • 1970-01-01
      • 2011-02-24
      • 2012-06-19
      • 2014-11-17
      相关资源
      最近更新 更多