Как суммировать значения набора запросов в view.py - PullRequest
0 голосов
/ 23 января 2019

Это мой view.py:

class PaymentControlList(ListView):
    template_name = "any.html"
    model = Payment

    def get_context_data(self, **kwargs):

        context = super().get_context_data(**kwargs)
        context['filter'] = PaymentFilter(self.request.GET, queryset=self.get_queryset())

        return context

В этой модели (оплата) у меня есть поле с именем value, как я могу создать переменную с именем total и использовать ее в своем шаблоне? Это мой template.py

{% for item in filter.qs %}

    {% if item.entrada %}
    <tr>
        <th scope="row">{{ item.data }}</th>
        <td>{{ item.payment }}</td>
        <td>{{ item.type }}</td>
        <td class="item-value">{{ item.value }}</td>
    </tr>
    {% endif %}
{% endfor %}
<h3> {{ total }} </h3> <!--Sum of item.value

Просто чтобы вы знали, что я написал фильтр, используя django-filter

1 Ответ

0 голосов
/ 23 января 2019

Просто выполните другой запрос для суммирования значений и добавьте его в контекст:

from django.db.models import Sum

class PaymentControlList(ListView):
    template_name = "any.html"
    model = Payment

    def get_context_data(self, **kwargs):
        context = super().get_context_data(**kwargs)
        queryset = self.get_queryset()
        filter = PaymentFilter(self.request.GET, queryset=queryset)
        context['filter'] = filter
        context['total'] = filter.qs.aggregate(Sum('value')).get('value__sum')

        return context
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...