dodatkowe warunki dołączenia do django
Czy można dodać dodatkowy warunek do instrukcji join generowanej przez ORM django?
Czego potrzebuję w SQL
'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 …
W Django roku większość
Post.objects.annotate(Count('watchinglist')).get(pk=123)
Ale jak mogę dodać
AND "watchlist". "User_id" =…do stanu JOIN za pomocą django ORM?
Dodanie go do filtra nie pozwala na uzyskanie obiektów pocztowych bez powiązanych obiektów na liście obserwacji.
Nie znaleziono powiązanych wyników
Zaproszony:
Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się
3 odpowiedzi
Anonimowy użytkownik
Potwierdzenie od:
FilteredRelation
https://docs.djangoproject.com ... jects
Anonimowy użytkownik
Potwierdzenie od:
Kiedy budowa pozostała dołącza do ogólnegoForeignkey, połączenia Django
GenericRelation.get_extra_restriction
https://github.com/django/djan ... 3L437
który dodaje dodatkowy stan do sugestii z limitem "Content_type_id".
W przypadku „ForeignKey” ta metoda jest również nazywana return none.
Możesz użyć tego miejsca, aby umieścić dodatkowe ograniczenia w klauzuli ON, jeśli możesz zorganizować kod tak, aby uzyskać prawidłowe parametry ograniczenia w określonym czasie.
Anonimowy użytkownik
Potwierdzenie od:
Post.objects.annotate(Count('watchinglist')).filter(pk=123).extra(where=['"watchlist"."user_id" = 1'])
Miłego kodowania.