Python Django,如何每月从DateField提取值列表?
我有以下型号:Python Django,如何每月从DateField提取值列表?,python,django,django-models,django-views,django-templates,Python,Django,Django Models,Django Views,Django Templates,我有以下型号: 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") 我
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')))
使用值()
方法代替值列表()
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')))
也可以尝试按月份过滤
Monthly\u views=material.objects.filter(数据\u year='2020')。filter(数据\u month='4'))