วิธีทำคณิตศาสตร์ในเทมเพลต 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 %} / b {% widthratio a b 1 %}ข้อเสียเปรียบเท่านั้นผลลัพธ์จะถูกปัดเศษเป็นจำนวนเต็มก่อนส่งคืน ใช้แท็กแม่แบบของ Django widthratio การคูณและหาร
ลิม

2
@Erik นั่นควรจะเป็นคำตอบของมันเอง - ทางออกที่ดีกว่ามาก
nhinkle

1
อัปเดตลิงก์เพื่อเพิ่มในเอกสาร
rnevius

จะเกิดอะไรขึ้นถ้าฉันใช้แบบนี้: {{object.article.rating_score | add: "{% widthratio object.article.rating_score 100 5%}"}}
Mushahid Khan

@Daniel Roseman จะเพิ่มหลังจากใช้เปอร์เซ็นต์แบบนี้ได้ไหม: {{object.article.rating_score | add: "{% widthratio object.article.rating_score 100 5%}"}}
Mushahid Khan

31

ใช้Django-mathfilters นอกจากตัวกรองเพิ่มในตัวแล้วยังมีตัวกรองเพื่อลบคูณหารและรับค่าสัมบูรณ์

{{ 100|sub:object.article.rating_score }}ยกตัวอย่างเช่นที่ระบุข้างต้นคุณจะใช้


19

โดยทั่วไปขอแนะนำให้คุณทำการคำนวณนี้ในมุมมองของคุณ มิฉะนั้นคุณสามารถใช้ตัวกรองเพิ่ม


คุณทำมันภายในลูปในเทมเพลตได้อย่างไร?
bismigalis
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.