Python Django管理聚合

Python Django管理聚合,python,django,admin,aggregation,Python,Django,Admin,Aggregation,我正在使用Django管理存款,但我发现了一个问题,有一个medel看起来像: class Deposit(models.Model): user = models.ForeignKey(User) money_re = models.DecimalField(max_digits=11, decimal_places=2) ... 我想将模型中的一笔钱添加到页面右下角的管理更改列表页面 有没有办法在管理变更列表页面中使用模型聚合 欢迎任何有用的建议 覆盖

我正在使用Django管理存款,但我发现了一个问题,有一个medel看起来像:

class Deposit(models.Model):
      user = models.ForeignKey(User) 
      money_re = models.DecimalField(max_digits=11, decimal_places=2)
      ...
我想将模型中的一笔钱添加到页面右下角的管理更改列表页面

有没有办法在管理变更列表页面中使用模型聚合


欢迎任何有用的建议

覆盖
ModelAdmin.changelist\u view()
并用所需数据填充上下文:

from django.db.models import Sum

class DepositAdmin(admin.ModelAdmin):

    def changelist_view(self, request, extra_context=None):
        aggregates = Deposit.objects.aggregate(Sum('money_re'))
        context = {'total_deposit': aggregates['money_re__sum']}
        if extra_context:
            context.update(extra_context)
        return super(DepositAdmin, self).changelist_view(request, context)
然后创建模板
admin//deposit/change\u list.html
,并在结果列表后显示此数据:

{% extends 'admin/change_list.html' %}

{% block result_list %}

    {{ block.super }}

    <div style="text-align: right; padding: 10px">
        Total deposit: <b>{{ total_deposit }}</b>
    </div>

{% endblock %}
{%extends'admin/change\u list.html%}
{%block result_list%}
{{block.super}}
存款总额:{{存款总额}
{%endblock%}