사용자에게 "즐겨 찾기"관계가 여러 개인 문서 모델이 있습니다. 검색 페이지에 문서 목록을 표시 할 때 현재 사용자에게 각 문서가 즐겨 찾기인지 여부를 표시하고 싶습니다. 나는이 일을하는 두 가지 방법을 알고 있습니다. 하나는 더 효율적이고 하나는 더 깨끗합니다. 나는 그것을 할 수있는 또 다른 방법이 있다면 그것이 효율적이고 깨끗한 지 궁금합니다.Django 템플릿에서 M2M 관계 쿼리
깨끗한 버전. 주어진 사용자가 문서를 선호 하는지를 알려주는 모델 "is_favored (user)"에 대한 메소드를 간단히 가지고 있어야합니다. 그런 다음이 함수를 사용하여 빈 별이나 채워진 별을 표시하는 간단한 템플릿 태그를 만듭니다. 물론 이것은 각 문서마다 다른 DB 호출을하기 때문에 효율적이지 않습니다. 그러나보기가 어떤 식 으로든 변경 될 필요가 없기 때문에 좋습니다.
효율적인 버전. 보기에서 단일 데이터베이스 쿼리를 수행하여 즐겨 찾는 쿼리를 검색하고 각 문서에 "선호"필드를 추가합니다. 문서를 표시하는 모든보기에 사용자 지정 코드를 추가해야하고 너무 건조하지 않기 때문에이 방법이 마음에 들지 않습니다.
DRY와 효율적인 두 가지 방법이 있습니까? 감사합니다. .
을 건조 문맥 가공업자에있는 템플렛. 나는 각 문서에 "마음에 드는"가변을 추가하기 위하여 그것을 필요로한다. –