Как перемножить две переменные вместе в HTML-шаблоне DJANGO
У меня есть страница, на которой перечислена различная информация о конкретном складе, включая заказы, которые были размещены на этот конкретный товар. Я хотел бы отобразить, сколько денег пользователь этой системы получит от этого конкретного заказа.
<table class='table'>
<thead>
<tr>
<th>ORDER ID</th>
<th>NAME</th>
<th>AMOUNT ORDERED</th>
<th>REVENUE</th>
<th>ORDERED ITEM</th>
<th>ADDRESS</th>
<th>CITY</th>
</tr>
</thead>
{% for x in queryset2 %}
<tr>
<td>{{x.id}}</td>
<td>{{x.name}}</td>
<td>{{x.quantity}}</td>
<td>{{x.quantity * stock.ppu}}</td>
<td>{{x.order_item}}</td>
<td>{{x.address}}</td>
<td>{{x.city}}</td>
</tr>
{% endfor %}
</table>
У меня есть такой код. Каков будет правильный синтаксис для умножения этих двух переменных вместе: {{x.quantity * stock.ppu}}
Вы не можете писать арифметические выражения в шаблоне Django. Вы должны написать это в представлении, например, аннотировав queryset:
from django.db.models import F
# …
queryset2 = queryset2.annotate(
total_value=F('quantity') * F('ppu')
)
тогда в шаблоне вы отобразите это как:
<td>{{ x.total_value }}</td>
Для выполнения математических операций в шаблоне Django вы можете использовать это django-mathfilters
но если вы пытаетесь использовать встроенный способ, то можете следовать этому для сложения и вычитания
Пример:
{{x.quantity | add: stock.ppu}}
Для выполнения умножения и деления можно использовать widthratio
Пример:
a*b use {% widthratio a 1 b %}
a/b use {% widthratio a b 1 %}
из этого ответа
или вы можете сделать свои собственные пользовательские теги
для добавления
@register.filter
def add_value(value, arg):
return value + arg
для вычитания
@register.filter
def subtract(value, arg):
return value - arg
затем используйте их в вашем шаблоне следующим образом
{{x.quantity | subtract: stock.ppu}}