Как подсчитать значение на сайте Python-Django

У меня есть количество продаж и количество возвратов. Мне нужно отобразить процент невозвращенных товаров в safetycoef. Например, есть 500 продаж и 100 возвратов, это должно быть 80% в 'safetycoef'. Или 1000 продаж и 240 возвратов, это означает 76%. Как это реализовать?

html:

<div>
  {% for phone in object_list %}
        <div class="smartphone" >
            {% endif %}
            <p>{{ phone.title }} — reliabilty {{phone.safetycoef }}%</p>
            <p>Based on {{phone.sales }} sales and {{phone.returns }} returns </p>
        </div>
        {% endfor %}
</div>

лучший способ - вычислить его в представлении и затем отправить его внутрь контекста. Вы также можете вычислить его в html, но это не так просто.

Разместите всю свою логику внутри Python. Шаблон - не самое подходящее место для этого.

В вашем примере вы просматриваете несколько телефонов и хотите получить процент невозвращенных товаров для соответствующего телефона.

Я бы объявил метод на модели и вызвал его внутри вашего шаблона:

# models.py

class Phone(models.Model):
    # your attributes here
    # ...

    def get_reliability_percentage(self):
        return (1 - (self.returns / self.sales)) * 100

Затем вы можете вызвать этот метод внутри вашего шаблона:

<div>
  {% for phone in object_list %}
        <div class="smartphone" >
            {% endif %}
            <p>{{ phone.title }} — reliabilty {{ phone.get_reliability_percentage }}%</p>
            <p>Based on {{phone.sales }} sales and {{phone.returns }} returns </p>
        </div>
        {% endfor %}
</div>

Вернуться на верх