在 django 模板中使用 python 字符串格式化

Posted

技术标签:

【中文标题】在 django 模板中使用 python 字符串格式化【英文标题】:Using python string formatting in a django template 【发布时间】:2011-08-03 09:46:25 【问题描述】:

有没有一种简单的方法可以?也就是说,我希望能够在模板中做这样的事情

 variable|%.3f 

我知道在这种情况下,可以使用

 variable|floatformat:3 

但我真的很希望能够在 django 变量上通用地使用任何 python 字符串格式。在我的系统中,必须处理两种不同的输出格式(python vs django)是不方便的,所以我想标准化。我可以编写一个自定义模板标签,例如

% pyformat variable format="%.3f" %

或者可能是自定义模板过滤器,例如

 variable|pyformat:"%.3f" 

其中任何一个已经存在吗?客户过滤器会处理这样传入的字符串吗?

【问题讨论】:

【参考方案1】:

stringformat

【讨论】:

【参考方案2】:
 variable|stringformat:".3f" 

来源:http://docs.djangoproject.com/en/dev/ref/templates/builtins/#stringformat

【讨论】:

"此说明符使用 Python 字符串格式化语法,但前导 "%" 被删除" 注意stringformat".3f" 之间没有空格很重要!如果有空间,那么它会因“stringformat required 2 arguments, 1 provided”异常而崩溃!【参考方案3】:

我省略了“%”:

     variable|stringformat:".3f"  

【讨论】:

以上是关于在 django 模板中使用 python 字符串格式化的主要内容,如果未能解决你的问题,请参考以下文章

使用标记将 python 字符串插入 Django 模板上下文

在 django 模板中显示 ASCII 字符(python 2)

Django模板语法

3Python全栈之路系列之D

遍历字符串和列表的 Python/Django 模板

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