首页 > 解决方案 > Django 显示带有元组数据的格式化字符串(仅调用一次)

问题描述

我想在 django 模板中显示元组数据。

我想使用类似于 Python 格式字符串的语法:

print("I have %d referrers and %f cashbacks" % request.user.get_referrer_data())

在这种情况下,这request.user.get_referrer_data()是一个昂贵的方法,所以我只想在我的模板中调用它一次(尽管我缓存了它的结果)。

你知道让我在字符串中注入元组的模板语法吗?

像这样的代码会很棒:

{{ "I have %d referrers and %f cashbacks" | formated_string request.user.get_referrer_data() }}

标签: pythondjangodjango-templates

解决方案


采用{% with ...

{% with rdata=request.user.get_referrer_data %}

I have {{ rdata.0 }} referrers and {{ rdata.1 }} cashbacks

{% endwith %}

要更好地控制值的格式,请使用过滤器。Django 提供floatformat浮点值:

{{ rdata.1|floatformat:2 }}

给出两位小数。


推荐阅读