Désolé de ne pas pouvoir fournir tout mon code pour mon travail et j'utilise actuellement mon ordinateur personnel.django count distinct max
Je suis nouveau à django et ont besoin d'une aide pour résoudre ce
J'ai besoin pour obtenir le résultat du comptage distinct max
donc, je tables de contenu et Comment contenu a content_id et le titre Le commentaire a comment_id, comment, content_id (FK)
chaque fois que les utilisateurs commenteront le contenu table de commentaires va les enregistrer. par ex. Commentaire
comment_id comment content_id
1 blah blah 1
2 blah blah 1
3 blah blah 2
4 blah blah 3
Je dois obtenir le titre du contenu qui a le plus grand nombre de commentaires dans. donc pour l'exemple ci-dessus, content_id 1 a le plus de commentaires car il a 2 commentaires. Je dois obtenir le titre de content_id 1 du contenu de la table.
dans SQL je peux utiliser quelque chose comme (pas exactement, mais juste pour vous donner l'idée de ce que je veux)
SELECT DISTINCT(content.content_id) AS no_of_comments,
title
FROM content INNER JOIN comment
ON content.content_id = comment.content_id
GROUP BY content.content_id
ORDER BY no_of_comments DESC
je peux obtenir
no_of_comments title
2 Title Of Content One
1 Title Of Content Two
1 Title Of Content Three
alors je viens besoin de retourner 'Title Of Content One' à la suite de mon code
Je sais comment les obtenir à partir de SQL, à partir du code ci-dessus, mais je ne sais pas comment je peux le faire avec django
Je pense que je pourrais avoir besoin d'utiliser des choses de curseur dans django si elle a, mais comme j'ai commencé à joindre ces deux tables, je ne sais pas quoi faire. Et j'utilise django 1.6
Aidez-moi s'il vous plaît.
https://docs.djangoproject.com/en/1.8/topics/db/aggregation/# generating-aggregates-for-each-item-in-a-queryset – Anentropic
Thx, @Anentropic Cette page a beaucoup aidé, mais vous avez toujours une question. 'c = Comment.objects.values ('content_id'). annotate (count = Count ('conent_id')). order_by ('- count')' et ensuite 'c [0] .count' nombre maximum de comptes? si oui, alors comment puis-je obtenir le titre? ou au moins le content_id? –
il serait plus logique d'interroger du point de vue du modèle de contenu: 'Content.objects.annotate (count = Count ('comment__id')). Order_by ('- count')' – Anentropic