Як зробити математику в шаблоні Django?


103

Я хочу зробити це:

100 - {{ object.article.rating_score }} 

Так, наприклад, результат буде , 20якщо {{ object.article.rating_score }}дорівнює 80.

Як це зробити на рівні шаблону? У мене немає доступу до коду Python.

Відповіді:


154

Ви можете використовувати addфільтр:

{{ object.article.rating_score|add:"-100" }}

37
Для множення та ділення ви можете неправильно використовувати вбудований widthratioтег шаблону. Для обчислення використання * b {% widthratio a 1 b %}, для використання a / b {% widthratio a b 1 %}. Тільки недолік, результати округляються до цілого числа перед поверненням. Використання тегу шаблону Django widthratio для множення та ділення
виключити

2
@Erik, це має бути власна відповідь - набагато краще рішення.
nhinkle

1
Оновлено посилання, щоб додати в Документи
rnevius

Що робити, якщо я використовую так: {{object.article.rating_score | додати: "{% widthratio object.article.rating_score 100 5%}"}}
Mushahid Khan

@Daniel Roseman чи можу я додати після застосування такого відсотка: {{object.article.rating_score | add: "{% widthratio object.article.rating_score 100 5%}"}}
Мушагід Хан

31

Використовуйте джанго-математичні фільтри . Окрім вбудованого фільтра додавання, він забезпечує фільтри для віднімання, множення, ділення та прийняття абсолютного значення.

У конкретному прикладі вище, ви б використали {{ 100|sub:object.article.rating_score }}.


19

Як правило, рекомендується зробити цей розрахунок на ваш погляд. В іншому випадку ви можете використовувати фільтр Додати.


Як це зробити всередині циклу в шаблоні?
bismigalis
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.