내 Django 앱에서 사용자는 카테고리별로 영화 모음을 만들 수 있습니다. 이것은 Movie, Collection 및 Addition의 3 가지 모델을 사용하여 표현됩니다 (추가 모델은 동영상, 컬렉션 및 사용자 인스턴스를 저장합니다). 아래 세 모델의 간체 버전이 있습니다.Django : 관련 필드를 기반으로하는 고유 한 QuerySet
class Movie(models.Model):
name = models.CharField(max_length=64)
class Collection(models.Model):
name = models.CharField(max_length=64)
user = models.ForeignKey(User)
class Addition(models.Model):
user = models.ForeignKey(User)
movie = models.ForeignKey(Movie)
collection = models.ForeignKey(Collection)
예를 들어 사용자는 "80 's movies"컬렉션을 만들고 "Indiana Jones"동영상을 컬렉션에 추가 할 수 있습니다.
내 질문은 : 일련의 쿼리 필터를 기반으로하는 고유 한 영화 목록을 표시하려면 어떻게합니까? 지금 나는 하나 이상의 컬렉션에 추가 된 영화에 대해 많은 복제본을 얻고 있습니다. 별개의 객체를 얻으려면 대개 distinct()를 사용하지만이 경우 별개의 추가가 아닌 별개의 동영상이 필요하지만 사용자가 친구가 추가 한 영화를 볼 수 있도록 추가 모델을 쿼리해야합니다.
최적의 방법으로 모델을 설정하고 있습니까? 조언이나 도움을 많이 주시면 감사하겠습니다.
감사합니다.