2013-12-12 1 views
0

은의 우리가 우리의 장고 응용 프로그램의 두 가지 모델이 있다고 가정 해 봅시다 :다른 측면에서 장고 ManyToMany 필드를 조회하는 방법

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

class Book(models.Model): 
    name = models.CharField() 

일반적으로 많은 분야에 많은 내가 중간 테이블과 단지 쿼리를 만들 것을 그 :

class BookAuthor(models.Model): 
    book = models.ForeignKey(Book) 
    author = models.ForeignKey(Author) 

그 이후로 나는 단순히 book 또는 author 중 하나에 의해 BOOKAUTHOR을 조회 할 수 있습니다. 그래서 지금

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

class Book(models.Model): 
    name = models.CharField() 
    authors = models.ManyToManyField(Author) 

나는 둥근 다른 방법에 대한 책의 저자 ......하지만를 조회 할 수 있습니다 - 저자의 책 :

그러나, 장고 ManyToManyField는이 변경 것인가?

당신은 같은 저자의 책을 얻을 수 있습니다
+0

'ManyToManyField' 필드에'related_name' attr을 정의하면됩니다. [docs] (https://docs.djangoproject.com/en/dev/ref/models/fields/#django.db.models.ManyToManyField)를 참조하십시오. – mariodev

답변

2

:

Author.objects.filter(book__name__startswith="The") 

당신은이 두 가지를 재정의 할 수

author.book_set.all() 

참고 기본 쿼리에 다른 것을, 당신은 모델 이름을 사용 기본값은 사용자의 M2M 입력란에 related_namerelated_query_name 속성을 설정하는 것입니다. documentation을 참조하십시오.