Как я могу суммировать и отобразить поле метода модели, а также вывести его на приборную панель без цикла через шаблон в Django

Как я могу суммировать и отобразить поле метода модели, а также вывести его на приборную панель без зацикливания шаблона в Django.

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

Формула, которую я использовал на протяжении всего времени, - простые проценты = (основная сумма * продолжительность * ставка)/100

Мое мнение

    investments = Investment.objects.all()
    total_invested = Investment.objects.aggregate(
        total_invested=Sum('amount_deposited '))

    context = {
        'investments': investments,
        'total_invested': total_invested,
    }

    return render(request, 'list-investments.html', context)```


Then displaying it in my template ```{{total_invested.total_invested}}```

Note: I didnt use **for loop** in my template but I was able to get the total sum invested.

I tried repeating the same procedure to get the total amount earned but Its not working.   Any idea how to go about it? 

I also want to know how I can save these model methods values in the database. 


Model Class

```class Investment(models.Model):
    PLAN_CHOICES = (
        ("Basic - 4% - max 6", "Basic - 4% - max 6"),
        ("Premium - 5% - max 12", "Premium - 5% - max 12"),
    )

    plan = models.CharField(max_length=50, choices=PLAN_CHOICES, null=True)
    duration = models.IntegerField(max_length=50, null=True)
    start_date = models.DateField(null=True)
    end_date = models.DateField(null=True)
    active_investment = models.BooleanField(default=True)
    amount_deposited = models.IntegerField(null=True)

    def __str__(self):
        return self.plan

    def basic_profit(self):
        self.basic_pro = (self.amount_deposited*self.duration*4)/100
        return self.basic_pro

    def premium_profit(self):
        self.premium_pro = (self.amount_deposited*self.duration*8)/100
        return self.premium_pro

    def total_basic_net_profit(self):
        self.total_basic_pro = (self.amount_deposited *
                                self.duration*4)/100 + self.amount_deposited 
        return self.total_basic_pro

    def total_premium_profit(self):
        self.total_premium_pro = (
            self.amount_deposited *self.duration*8)/100 + self.amount_deposited 
        return self.total_premium_pro```



Вернуться на верх