Django, как извлечь список значений ежемесячно из DateField? - PullRequest
0 голосов
/ 27 апреля 2020

У меня есть следующие модели:

class Materiale(models.Model):
    sottocategoria = models.ForeignKey(Sottocategoria, on_delete=models.CASCADE, null=True)
    quantita=models.DecimalField(')
    prezzo=models.DecimalField()
    data=models.DateField(default="GG/MM/YYYY")

Я хочу вычислить значение, заданное следующими выражениями PREZZO*QUANTIA в месячном представлении (другими словами, общая сумма PRZZO*QUANTITA всех предметов в один месяц), но мой код не работает:

Monthly_views=Materiale.objects.filter(data__year='2020').values_list('month').annotate(totale_mensile=F(('quantita')*F('prezzo')))

Ответы [ 2 ]

1 голос
/ 27 апреля 2020

Попробуйте также выполнить фильтрацию по месяцам

Monthly_views=Materiale.objects.filter(data__year='2020').filter(data_month='4')
1 голос
/ 27 апреля 2020

Используйте метод values() вместо values_list()

from django.db.models import F, Sum

result = Materiale.objects.annotate(totale_mensile=F('quantita') * F('prezzo')
                           ).values('data__month').annotate(totale_mensile_sum=Sum('totale_mensile')))

или просто

result = Materiale.objects.values('data__month').annotate(totale_mensile_sum=Sum(F('quantita') * F('prezzo')))
...