在代码中使用 django 内置过滤器(在模板之外)

Posted

技术标签:

【中文标题】在代码中使用 django 内置过滤器(在模板之外)【英文标题】:use a django built in filter in code (outside of a template) 【发布时间】:2011-07-31 21:24:29 【问题描述】:

我在 python 中格式化一个字符串,我想使用一个 django 的内置过滤器,它通常在模板中使用。有没有简单的方法在代码行中使用它?

【问题讨论】:

【参考方案1】:

取决于过滤器。在某些情况下,您可以导入包含过滤器的模块并访问模块中的辅助函数,但在其他情况下,您不会那么幸运。有关详细信息,请参阅过滤器源。

【讨论】:

谢谢,过滤器实际上使用了另一个我可以导入的 django 实用方法【参考方案2】:

一般来说,是的。例如,如果您的过滤器位于 django.template.defaultfilters 中,您可以运行:

from django.template.defaultfilters import slugify
slugify('what is that smell')

【讨论】:

【参考方案3】:

不要在模板中使用这个:

text | linebreaks

我用它来实现换行过滤器:

from django.template.defaultfilters import linebreaks
text = "some text \n next line"
text = linebreaks(text)

给予:

<p>some text <br /> new line</p>

【讨论】:

以上是关于在代码中使用 django 内置过滤器(在模板之外)的主要内容,如果未能解决你的问题,请参考以下文章

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

django中模板变量与内置标签以及过滤器

Django模板之模板变量过滤器

Django 模板过滤器语法错误

视图 模板渲染 过滤器(内置) 标签

Django基础二