2011-11-20 47 views
2

我試圖找出如何計算作者寫入的書籍數量。書模型以作者模型設置了許多許多領域。我不知道如何甚至谷歌這樣的事情,我認爲會很簡單,但我甚至不知道如何開始。Django:引用已在另一個模型中定義的manytomany字段

這裏的精簡代碼:

class Author(models.Model): 
    first_name = models.CharField() 
    last_name = models.CharField() 

    def books(self): 
     """Return a list of comma separated list of books by the author""" 
     pass 

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

也許我可以做一個過濾器查詢特定作​​者拿到的書,但它似乎並不像Django的方式做到這一點?我也不確定如何將過濾器函數傳遞給python對象而不是文本。

感謝

當你定義一個外鍵或多對多場

回答

4

,Django會爲您設置一個反向關係,而你的情況是book_set。所以像:

def books(self): 
    books = self.book_set.all() 
    return ', '.join([book.title for book in books]) 

看到related objects在文檔

+0

啊,我知道Django的將有一定的快捷方式,我只是無法找到它的文檔,但有啊!非常感謝! – Durand

相關問題