Django admin anotate无法使用更改列表视图查询集

Django admin anotate无法使用更改列表视图查询集,django,django-models,django-admin,Django,Django Models,Django Admin,我需要为按年、月和类别分组的记录列表创建摘要视图。当我使用模型管理器并进行注释时,它工作良好,并且正确创建了摘要。但是,如果我使用changelist\u视图requestobjetcts'queryset,它也会复制未分组的记录。请参阅下面的两个代码清单 正确的值: Bill.objects.values_list('category__name', 'year', 'month').annotate(Sum('amount'), due=Sum(F('amount') - F('paid_a

我需要为按年、月和类别分组的记录列表创建摘要视图。当我使用模型管理器并进行注释时,它工作良好,并且正确创建了摘要。但是,如果我使用
changelist\u视图
requestobjetcts'queryset,它也会复制未分组的记录。请参阅下面的两个代码清单

正确的值:

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)]>
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)]>
Bill.objects.values\u list('category\u name','year','month')。注释(Sum('amount'),到期=Sum(F('amount')-F('paid\u amount'),output\u field=models.FloatField())
与变更列表一起使用时不正确\u视图查询集:

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)]>
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)]>
qs=response.context_数据['cl'].queryset
额外上下文['summary']=qs.values\u列表('category\u name','year','month')。注释(
Sum('amount'),due=Sum(F('amount')-F('paid_amount'),output_field=models.FloatField())
打印(额外上下文[“摘要])

上面显示2019年8月未正确分组。

当与queryset上的
order\u by
函数一起使用时,该功能工作正常