Django管理界面显示聚合

Rah*_*uri 4 django django-models django-admin django-modeladmin django-admin-tools

我想使用django管理界面来显示模型中的数据聚合.例如:模型有以下字段[员工姓名,工资,月份]我希望聚合表包含字段[month,total_salary_paid,cumulative_of_month_salaries_paid].我该怎么做呢 ??我搜索过互联网但没有找到任何办法.任何参考或指导都会有所帮助

小智 10

这是我最近的一个项目的片段.它在管理员中添加了一列"此M2M相关表中是否有任何条目?" 另一个是"这个M2M相关表中的条目数是多少?".您可以使用Django提供的其他聚合函数执行类似的操作.

from django.db.models import Count
from django.contrib import admin

class ExpertModelAdmin(admin.ModelAdmin):
    def num_companies(self, obj):
        """# of companies an expert has."""

        return obj.num_companies
    num_companies.short_description = "# companies"

    def has_video(self, obj):
        """Does the expert have a video?"""

        return bool(obj.has_video)
    has_video.short_description = "video?"
    has_video.boolean = True

    def get_queryset(self, request):
        """Use this so we can annotate with additional info."""

        qs = super(ExpertModelAdmin, self).get_queryset(request)
        return qs.annotate(num_companies=Count('company', distinct=True),
                           has_video=Count('mediaversion', distinct=True))
Run Code Online (Sandbox Code Playgroud)