Est-il possible d'ajouter une condition supplémentaire à la jointure créée par django ORM?conditions supplémentaires lors de la jointure dans django
Ce que j'ai besoin dans SQL est
'SELECT "post"."id", COUNT("watchlist"."id") FROM "post"
LEFT OUTER JOIN "watchlist"
ON ("post"."id" = "watchlist"."post_id" AND "watchlist"."user_id" = 1)
WHERE "post"."id" = 123 GROUP BY …
En django plus cela est
Post.objects.annotate(Count('watchinglist')).get(pk=123)
Mais comment puis-je ajouter AND "watchlist"."user_id" = …
en condition join avec django ORM? L'ajout au filtre n'obtient pas d'objets Post sans objets associés dans la liste de surveillance.
On dirait qu'il fait acually la même chose que le filtre(). Par exemple. ajouter un paramètre à WHERE, pas à ON, et donc fournir un résultat vide s'il n'y a pas d'objet watchlist. – HoverHell
Mais, en fait, bonne idée. J'ai manqué le paramètre 'supplémentaire' de Count. On dirait que ça marche. – HoverHell
... ou peut-être pas. "extra" il semble y avoir un but un peu différent. – HoverHell