按Django管理员中的字段值列出项目列表项

时间:2017-07-23 20:33:48

标签: python django django-admin

我尝试按特定字段(例如Django admin)对date应用中的项目进行分组。 所以我已经在admin.ModelAdmin.getQueryset()中添加了以下查询集:

queryset = queryset.values('date').annotate(Sum('amount'))

但这不起作用,因为在这种情况下,会返回dict而不是queryset

我开始探索django/contrib/admin文件夹中的内容,我认为在将对象发送到模板change_list.html之前需要先完成一些事情。

我不确定,但我认为views/main.py(管理员文件夹)中的课程可能需要进行一些更改。

有人可以确认我尝试做的事情是可以实现的吗?

请在下面找到我想要实现的目标:

Screenshot

2 个答案:

答案 0 :(得分:1)

在网址中按照以下示例操作。通过自定义查询集和groupby数据覆盖django admin,可以很好地理解它 https://medium.com/@hakibenita/how-to-turn-django-admin-into-a-lightweight-dashboard-a0e0bbf609ad

答案 1 :(得分:1)

我发现这很有用:https://github.com/xacce/django_admin_grouper

您可以简单地在 ClassAdmin

中定义组
class RecordAdmin(admin.ModelAdmin):
    def regroup_by(self):
        return 'category'

repo 覆盖了 Django 的 change_list_results.html。如果您的 RecordAdmin 具有方法 reggroup_by,则它会插入带有类别名称的行。如果缺少 reggroup_by,它会照常工作。

相关问题