Django模板过滤器 - 不可能使用链接在一起的urlize和textile

Posted

技术标签:

【中文标题】Django模板过滤器 - 不可能使用链接在一起的urlize和textile【英文标题】:Django template filters - impossible to use urlize and textile chained together 【发布时间】:2012-02-16 02:59:38 【问题描述】:

我发现无法使用链式过滤器 urlize 和 Textile。因为 urlize 过滤器是自动转义引号。另一方面,由于 Django 的建议,在纺织品输出后应用 urlize 是不可能的:

如果 urlize 应用于已经包含 html 标记的文本,事情 不会按预期工作。仅将此过滤器应用于纯文本。

任何过滤器序列都不起作用:

In [1]: from django.template import Template, Context
In [2]: text = '''"bla":/mo/14086/
   ...: http://bla.com'''
In [3]: Template('% load markup % text|textile|urlize ').render(Context('text': text))
Out[3]: u'\t<p><a href="/mo/14086/">bla</a><br />http://bla.com</p>'    
In [4]: Template('% load markup % text|urlize|textile ').render(Context('text': text))
Out[4]: u'\t<p>&quot;bla&quot;:/mo/14086/<br /><a href="http://bla.com" rel="nofollow">http://bla.com</a></p>'

有人知道如何同时使用这两个过滤器吗?

更新: 我正在使用 Django 版本 1.4 alpha 1 SVN-17347

【问题讨论】:

【参考方案1】:

with 的解决方法:

% with text|urlize as urlized %
   urlized|textile 
% endwith %

【讨论】:

没有帮助 - 与我的示例中的结果相同 - 行 Out[4]

以上是关于Django模板过滤器 - 不可能使用链接在一起的urlize和textile的主要内容,如果未能解决你的问题,请参考以下文章

如何将 Django 的标记模板标签与 Google App Engine WebApp 框架一起使用

如何在Django模板中添加,乘以数字变量?

django模板:过滤后的点

django 的模板标签“include”如何与 None 一起使用

django自定义过滤器及模板标签

Django模板如何使用标签和模板过滤器从json dict中获取数据