Как я могу суммировать и отобразить поле метода модели, а также вывести его на приборную панель без цикла через шаблон в 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```