Попробуйте назначить переменную в шаблоне «с» ожидаемым хотя бы одним назначением переменной - 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
        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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...