Python Django管理聚合
我正在使用Django管理存款,但我发现了一个问题,有一个medel看起来像: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) ... 我想将模型中的一笔钱添加到页面右下角的管理更改列表页面 有没有办法在管理变更列表页面中使用模型聚合 欢迎任何有用的建议 覆盖
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%}