如何在Django模型中选择* group by

时间:2017-05-04 04:31:48

标签: python django django-models

我有一个模型:Syscheck(PostgreSQL表名:syscheck_syscheck),包括一些字段

changes, size, uid, gid, filepath, syscheck_path

如何执行这样的SQL查询

SELECT * FROM syscheck_syscheck GROUP BY filepath

我试过了:

Syscheck.objects.values('filepath').annotate(Count('filepath'))

它工作正常,但只返回文件路径字段,当我想要更多字段返回时,我尝试了这个:

Syscheck.objects.values('filepath', 'size', 'uid', 'gui').annotate(Count('filepath'))

它没有工作

1 个答案:

答案 0 :(得分:0)

Django ORM的小组有点棘手。只有按“基础”模型分组时才会这样做。 我设法做出这样的情况:

Filepath.objects.all().select_related('syscheck').filter(syscheck__isnull=False).annotate(Count('filepath'))

您可以访问syscheck数据,但这取决于您的具体情况。

希望它有所帮助!