2010-08-03 115 views
27

我爲我的Django應用我獲取的所有對象爲特定的模型,像這樣:如何在Django模板中獲取模型的對象數?

secs = Sections.objects.filter(order__gt = 5) 

我通過這個varbiles到我的模板,我可以訪問模型像section.namesection.id的所有屬性等

有一個模型叫做Books它有一個FK Sections模型。當我遍歷模板中的secs變量時,如何訪問每個段的計數?像{{ sec.Books.count }}

謝謝

回答

59

如果Books有一個ForeignKey到Sections,那麼Django會自動創建章節回書籍反向關係,這將被稱爲books_set。這是一個管理員,這意味着你可以使用.filter().get().count() - 你可以在你的模板中使用它們。

{{ sec.books_set.count }} 

(順便說一句,你應該使用單數名詞用型號名稱,而不是複數 - 的Book代替Books該模型的實例保存信息一點書,並不多。)

9

另外根據Daniel的說法,Django會自動創建反向關係(如Daniel所述),除非您使用related_name參數覆蓋它們的名稱。在您的特定情況下,你會是這樣的:由

class Book(models.Model): 
    section = models.ForeignKey(Section, related_name="books") 

然後你就可以訪問部分的書算在模板:

{{ sec.books.count }} 

正如你在你的問題暗示。

相關問題