Je veux utiliser annotate
pour compter le nombre d'occurrences dans mon modèle, mais il n'utilise pas le bon champ dans le groupe par état. au lieu d'utiliser le champ que je veux (c'est-à-dire celui spécifié dans la fonction count), il utilise la clé primaire du modèle. par exemple.Spécifier le groupe par domaine dans django 1.2
ObjectHistory.objects.annotate(revisions=Count('resource'))
produit sql
SELECT *, COUNT(`resources_objecthistory`.`resource_id`) AS `revisions` FROM `resources_objecthistory` GROUP BY `resources_objecthistory`.`history_id`
où history_id
est la clé primaire de
ce que je veux est:
SELECT *, COUNT(`resources_objecthistory`.`resource_id`) AS `revisions` FROM `resources_objecthistory` GROUP BY `resources_objecthistory`.`resource_id
Je trouve que, en mettant
ObjectHistory.objects.values.('resource').annotate(revisions=Count('resource'))
il a mis le bon groupe par domaine, mais je n'ai pas eu accès aux autres champs du modèle.
Comment spécifier l'utilisation de resource_id dans le champ group by?