Я хочу получить сумму 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 () метод не работает. Есть ли другой способ суммировать этот прайс-лист?