설명을 찾을 수없는 문제가 있습니다.장고 모델과 다 대다 관계 - 가장 유사한 객체 찾기
하나의 객체 (이 경우 "Article")가 주어지면 측정 된대로 다른 기사가 기사 X와 가장 유사한 것을 결정하기 위해 다른 유형의 객체 (이 경우 "Category")를 사용하고자합니다. 공통점이있는 카테고리 수만큼 Article와 Category 사이의 관계는 many to many 다. 유스 케이스는 링크로 표시 할 관련 객체의 빠른 목록을 가져 오는 것입니다.
는 내가 손으로 SQL을 작성합니다 정확히 알고
select
ac.article_id
from
Article_Category ac
where
ac.category_id in
(
select
category_id
from
Article_Category
where
article_id = 1 -- get all categories for article in question
)
and ac.article_id <> 1
group by
ac.article_id
order by
count(ac.category_id) desc, random() limit 5
내가 고민하고있어이 논리와 일치하는 단 하나 개의 쿼리를 실행하는 장고 모델 집계를 사용하는 방법입니다. 나는 obv. 가능한 경우 프레임 워크 내에서 수행하는 것을 선호합니다. 아무도 이것에 대한 포인터가 있습니까?
django ORM 구문으로 표현하기 쉽지 않은 경우 원시 쿼리 (https://docs.djangoproject.com/en/dev/topics/db/sql/)를 실행하는 데는 아무런 문제가 없습니다. – alecxe
빠른 응답을 보내 주셔서 감사합니다. 확실히 원시 쿼리를 실행할 수 있습니다. ORM 구문을 사용하여 구현하는 쉬운 방법을 놓치지 않으려 고합니다. 나는 그것으로 일하는 것에 상당히 새로운 사람이다. – dlb8685
[Django annotate query set of subquery] 가능한 중복 (0120)이 (가) –