Django отображать форматированную строку с данными кортежа (вызывается только один раз) - PullRequest
0 голосов
/ 04 февраля 2020

Я хочу отобразить данные кортежа в шаблоне 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() }}

1 Ответ

1 голос
/ 04 февраля 2020

Используйте {% with ...

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

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

{% endwith %}

Чтобы получить больший контроль над форматированием значений, используйте фильтр. Django обеспечивает floatformat для значений с плавающей запятой:

{{ rdata.1|floatformat:2 }}

дает два десятичных знака.

...