Я хочу получить сумму 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
return render(request, "home.html", context={"current_user": current_user, "all_moneybooks": all_moneybooks, "current_user_moneybooks": current_user_moneybooks})
else:
return render(request, "home.html", context={"current_user": current_user, "all_moneybooks": all_moneybooks})
home. html
{% for moneylog_set in current_user_moneybook.moneylog_set.all %}
<div class="text-center text-gray-900 text-gray-900 font-bold text-xl mb-2">
{% with total_pay+=moneylog_set.price %}
{{total_pay}}
{% endwith %}
</div>
{% endfor %}
'с' ожидаемым хотя бы одним присваиванием переменной
есть ли другой метод или несколько способов запроса?
// я просто добавляю свой код модели. У moneylog есть иностранный ключ с moneybook.
money> models.py
class Moneybook(core_models.TimeStampedModel):
NOW = timezone.now()
name = models.CharField(max_length=30, default="행복한 여행!")
owner = models.ForeignKey(
user_models.User, on_delete=models.CASCADE, related_name="owner")
companion = models.ManyToManyField(
user_models.User, related_name="companion", blank=True)
country = CountryField()
location = models.CharField(max_length=50, blank=True)
start_date = models.DateTimeField(default=NOW)
end_date = models.DateTimeField(default=NOW)
objects = models.Manager()
moneylog> models.py
class Moneylog(core_models.TimeStampedModel):
NOW = timezone.now()
CATEGORY_EAT = "eat"
CATEGORY_TRANSPORT = "trans"
CATEGORY_SHOPPING = "shop"
CATEGORY_ETC = "etc"
CATEGORY_CHOICES = ((CATEGORY_EAT, "식비"),
(CATEGORY_TRANSPORT, "교통비"),
(CATEGORY_SHOPPING, "쇼핑비"),
(CATEGORY_ETC, "기타"))
moneybook = models.ForeignKey(
moneybook_models.Moneybook, on_delete=models.CASCADE)
pay_day = models.DateTimeField(default=NOW)
payer = models.ForeignKey(
user_models.User, on_delete=models.CASCADE, related_name="payer")
dutch_payer = models.ManyToManyField(
user_models.User, related_name="dutch_payer")
price = models.IntegerField()
category = models.CharField(max_length=10)
memo = models.TextField()
objects = models.Manager()
def get_dutch_payer(self):
return " / ".join([str(person) for person in self.dutch_payer.all()])
def get_num_of_dutch_payer(self):
number_of_dutch_payer = self.dutch_payer.count()
return number_of_dutch_payer