2012-04-04 4 views
1

을 통해라는 : 만약 내가쿼리 ManyToMany 관계 내 모델이 설정이 필드

def author_info(request, pk): 
    author = get_object_or_404(Author, pk=pk) 
    topics = ???? 

: 저자 감안할 때

class Author(models.Model): 
    name = models.CharField(max_length=100) 

class Topic(models.Model): 
    name = models.CharField(max_length=100) 

class Article(models.Model): 
    name = models.CharField(max_length=100) 
    authors = models.ManyToManyField(Author, null=True, blank=True) 
    topics = models.ManyToManyField(Topic, null=True, blank=True) 

, 나는 그가 쓴 어떤 주제를 알고 싶어를 통과 필드를 지정하면 사용할 수 있지만 지금은 장고가 나를 위해 통과 필드를 만들고 투명하다고 가정하기 때문에 ID는 필드를 참조하지 않습니다 (해당 장고가없는 한).

답변

1

사용 Lookups that span relationships :

topics = Topic.objects.filter(article__authors=author).distinct() 

참고 : 동일한 주제를 다른 기사에 의해 선택 될 수 있기 때문에, 여기에 독특한 사용해야합니다.

+0

감사합니다. 나는 그 자신을 발견 할 수 있어야 했음에 틀림없지 만 나는 그것을 놓쳤다. 이제 확인해 볼께. – dyve

+0

매력을 좋아합니다. 감사. – dyve

관련 문제