Bir Django şablonunda matematik nasıl yapılır?


104

Bunu yapmak istiyorum:

100 - {{ object.article.rating_score }} 

Yani, örneğin, çıkış olacağını 20eğer {{ object.article.rating_score }}egale 80.

Bunu şablon düzeyinde nasıl yaparım? Python koduna erişimim yok.

Yanıtlar:


155

addFiltreyi kullanabilirsiniz :

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

37
Çarpma ve bölme için yerleşik widthratioşablon etiketini kötüye kullanabilirsiniz . {% widthratio a 1 b %}A / b kullanımı için a * b kullanımını hesaplamak için {% widthratio a b 1 %}. Tek dezavantajı, sonuçlar döndürülmeden önce bir tam sayıya yuvarlanır. Çarpma ve bölme için Django'nın widthratio şablon etiketini kullanarak
elim

2
@Erik bu kendi cevabı olmalı - çok daha iyi bir çözüm.
nhinkle

1
Dokümanlar'a eklenecek bağlantı güncellendi
rnevius

Ya böyle kullanırsam: {{object.article.rating_score | add: "{% widthratio object.article.rating_score 100 5%}"}}
Mushahid Khan

@Daniel Roseman, yüzdeyi uyguladıktan sonra ekleyebilir miyim: {{object.article.rating_score | add: "{% widthratio object.article.rating_score 100 5%}"}}
Mushahid Khan

31

Django-mathfilters kullanın . Yerleşik ekleme filtresine ek olarak, çıkarma, çarpma, bölme ve mutlak değeri alma filtreleri sağlar.

Yukarıdaki spesifik örnek için kullanırsınız {{ 100|sub:object.article.rating_score }}.


20

Genel olarak bu hesaplamayı kendi görüşünüze göre yapmanız tavsiye edilir. Aksi takdirde, ekleme filtresini kullanabilirsiniz.


Bunu şablondaki döngü içinde nasıl yaparsınız?
bismigalis
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.