Как перемножить две переменные вместе в 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}}
Вернуться на верх