2017-05-04 65 views
0

我有一個模型:SYSCHECK(PostgreSQL表名稱:syscheck_syscheck),包括一些領域如何在Django模型選擇*組

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')) 

它沒有通過工作

+0

當你有一組'Syscheck'與同'filepath'對象,什麼是假設數據庫返回'「大小」,「UID」,「gui''因爲他們將是每個'SysCheck的不同'? – Todor

+0

不能使用在'聚合函數選擇*' –

+0

@Todor模板,我想顯示系統檢查對象的所有領域。 – gnoohtuk

回答

0

Django的ORM的組是有點棘手。它只有在按「基本」模型進行分組時纔會這樣做。 我設法這種情況使得該類型的查詢是這樣的:

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

您可以訪問到syscheck數據,但它會取決於你的情況。

希望它有幫助!

+0

我沒有工作。無論如何感謝 – gnoohtuk

+0

發生了什麼?也許你可以使用Count註釋。我編輯了我的答案。 – Andruten