Как сложить список в шаблоне django? - PullRequest
0 голосов
/ 18 января 2020

Я хочу получить сумму moneylog_set.price, поэтому я пытаюсь назначить total_pay, но возникает ошибка

view.py

def all_moneybooks(request):
    current_user = request.user
    if current_user.is_authenticated:
        current_user_moneybooks = current_user.owner.all()
        total_pay = 0
        book_total_pay_list = []
        for current_user_moneybook in current_user_moneybooks:
            moneylog_set = current_user_moneybook.moneylog_set.all()
            for moneylog in moneylog_set:
                total_pay += moneylog.price
                book_total_pay_list.append(
                    (moneylog.moneybook.id, moneylog.price))

                print(dir(moneylog_set))
                print(book_total_pay_list)

        return render(request, "home.html", context={"current_user": current_user, "all_moneybooks": all_moneybooks, "current_user_moneybooks": current_user_moneybooks, "total_pay": total_pay, "book_total_pay_list": book_total_pay_list})
    else:
        return render(request, "home.html", context={"current_user": current_user, "all_moneybooks": all_moneybooks})

home. html

 {% for current_user_moneybook in current_user_moneybooks %}
        <a href="{% url "moneybooks:detail" current_user_moneybook.pk %}"> 
            <div class="border-gray-400 border-t border-b border-l border-r">
                <div class="container flex mx-auto">
                    <div class="w-1/5 my-10">
                        <p class="text-center text-gray-900">{{current_user_moneybook.country}}</p>
                    </div>
                    <div class="w-3/5 my-3">
                        <div class="inline-block align-middle text-gray-900 font-bold text-xl mb-2">{{current_user_moneybook.name}}</div>
                        <div class="text-gray-700 text-sm">{{current_user_moneybook.companion.all}}</div>
                        <div class="text-gray-900 text-sm">{{current_user_moneybook.start_date|date:"Y년 m월 d일"}} ~ {{current_user_moneybook.end_date|date:"Y년 m월 d일"}}</div>
                    </div>
                    <div class="w-1/5 my-10">
                            <div class="text-center text-gray-900 text-gray-900 font-bold text-xl mb-2">
                                {{book_total_pay_list[current_user_moneybook.pk:2].sum()}}
                            </div>
                    </div>
                </div>
            </div>
        </a>
        {% endfor %}

Не удалось проанализировать остаток: '[current_user_moneybook.pk:2]' из book_total_pay_list [current_user_moneybook.pk:2] '

есть ли другой метод или способ запроса? Кроме того, я угадал код здесь .sum () метод не работает. Есть ли другой способ суммировать этот прайс-лист?

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