django admin 自定义添加单独行 增加数据统计功能

发布时间 2023-04-13 14:36:37作者: super_ip

需求:

需要在某个页面单独增加一行,以便统计这一行的金额进行汇总显示,具体操作如下

不建议直接修改change_list.html,所以扩展 template 

admin.py中对应的admin.ModelAdmin中添加:

# 1.如果你改了 template 的名称,这里可以对应修改,否则默认即可
change_list_template = 'admin/change_list2.html'
# 2.添加一下统计代码
def changelist_view(self, request, extra_context=None):

    total=models.Sales.objects.filter(user=request.user,status=1).aggregate(tot=Sum('money'))['tot']
    my_context = {
            'total_money':total,
        }
    return super(PrivateSaleAdmin, self).changelist_view(request,
            extra_context=my_context)

在django的admin模版目录中新建change_list2.html

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

{% block result_list %}
    {{ block.super }}
    <div style="text-align: right; margin: 20px 5px; font-size: 20px;">
        总金额:{{ total_money }} 元
    </div>
{% endblock %}