【发布时间】:2019-09-15 12:36:30
【问题描述】:
我需要为按年、月和类别分组的记录列表创建摘要视图。当我使用模型管理器并对其进行注释时,它工作正常,并且正确创建了摘要。但是,如果我使用changelist_view 请求对象的查询集,它也会复制未分组的记录。请参阅下面的两个代码清单。
正确值:
Bill.objects.values_list('category__name', 'year', 'month').annotate(Sum('amount'), due=Sum(F('amount') - F('paid_amount'), output_field=models.FloatField()))
<QuerySet [('Insurance', '2019', 'FEB', Decimal('35200.2300000000'), 25200.230000000003), ('Telephone', '2019', 'AUG', Decimal('3353.54000000000'), -23.0), ('Telephone', '2019', 'JUL', Decimal('200'), 200.0)]>
与 changelist_view 查询集一起使用时不正确:
qs = response.context_data['cl'].queryset
extra_context['summary'] = qs.values_list('category__name', 'year', 'month').annotate(
Sum('amount'), due=Sum(F('amount') - F('paid_amount'), output_field=models.FloatField()))
print(extra_context['summary'])
<QuerySet [('Telephone', '2019', 'AUG', Decimal('1677'), -23.0), ('Telephone', '2019', 'JUL', Decimal('500'), 500.0), ('Telephone', '2019', 'AUG', Decimal('1676.54000000000'), 0.0), ('Telephone', '2019', 'JUL', Decimal('-300'), -300.0), ('Insurance', '2019', 'FEB', Decimal('35200.2300000000'), 25200.230000000003)]>
上面看到 AUG 2019 分组不正确。
【问题讨论】:
标签: django django-models django-admin