2017-10-22 7 views
1

m2m 필드가있는 모델이 있다고 가정하면 Article에 복수 Authors이 있다고 가정 해 봅시다. 작성자 집합이 다른 집합의 하위 집합 인 모든 기사를 가져 오는 가장 효율적인 방법은 무엇입니까? 장고 many2many는 다른 집합의 부분 집합입니다

class Article(models.Model): 
    authors = models.ManyToManyField('Author') 

하나에 의해 작성하거나 목록에서 저자의 많은하지만이 목록의 일부가 아닌 모든 저자가없는 한 모든 기사를 가져옵니다. '톰'에 의해 작성

authors_list = ['Tom', 'John', 'Sara', 'Kati'] 
  • 기사는 일치합니다.
  • 'Tom'과 'Sara'가 작성한 기사가 일치합니다.
  • 그러나 'Tom'과 'Alter'가 작성한 기사는 일치하지 않습니다. 당신의 저자 모델에 대한 자세한 내용을 모른 채
+0

무엇 당신의'Author' 모델은 어떻게 구성 되나요? 시도한 접근 방식은 무엇입니까? 응답에 대한 –

답변

1

이 그냥 추측이지만,이 일반적인 접근 방식은 작동합니다 :

authors = Author.objects.filter(first_name__in=authors_list) 
others = Author.objects.exclude(first_name__in=authors_list) 
queryset = Article.objects.filter(authors__in=authors) 
queryset = queryset.exclude(authors__in=others) 
+0

주셔서 감사합니다. –