Django - Ошибка типа "не является подпиской" - PullRequest
0 голосов
/ 14 марта 2019

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

Это то, что у меня есть до сих пор:

views.py:

def calculation(request, itemslug):

#All the Values ordered chronologically:  

values = Value.objects.filter(item__slug=itemslug).order_by('date')

dates = []
results =[]

#Create a list consisting of the dates

for value in values:
    a = value.date
    dates.append(a)

#Peform a calculation per date

for date in dates:

    latestvalue = Value.objects.filter(item__slug=itemslug).get(date=date)['amount']
    paidup = CashFlow.objects.filter(item__slug=itemslug).filter(date__lt=date).filter(type='cashin').aggregate(sum=Sum('amount'))['sum']

    try:
       result = round(latestvalue/paidup * 100,2)
    except ZeroDivisionError :
       result = 0

    results.append(result)

return render(request, 'overview/detail.html',
    {
    'result':results,
    })

к сожалению, я получаю ошибку TypeError: «Объект значения не может быть подписан» + возможно, в моем коде есть и другие ошибки .. Большое спасибо за просмотр !!

Спасибо,

1 Ответ

1 голос
/ 14 марта 2019

Как насчет упрощения:

    latestvalue = Value.objects.get(item__slug=itemslug, date=date).amount
    paidup = (CashFlow.objects
        .filter(item__slug=itemslug, date__lt=date, type='cashin')
        .aggregate(sum=Sum('amount'))['sum'])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...