我想使用annotate
來計算我的模型中出現的次數,但是它沒有通過陳述使用組中的右側字段。而不是使用我想要的字段(即在count函數中指定的字段),它使用模型的主鍵。例如在django 1.2中指定按字段分組1.2
ObjectHistory.objects.annotate(revisions=Count('resource'))
產生SQL
SELECT *, COUNT(`resources_objecthistory`.`resource_id`) AS `revisions` FROM `resources_objecthistory` GROUP BY `resources_objecthistory`.`history_id`
其中history_id
是ObjectHistory
我要的是:
SELECT *, COUNT(`resources_objecthistory`.`resource_id`) AS `revisions` FROM `resources_objecthistory` GROUP BY `resources_objecthistory`.`resource_id
我發現,通過把
ObjectHistory.objects.values.('resource').annotate(revisions=Count('resource'))
它把正確的組按字段,但然後我沒有訪問模型中的其他領域。
如何指定在group by字段中使用resource_id?