如何在Django模板中获取模型的对象数?

问题描述:

我为我的Django应用我获取的所有对象为特定的模型,像这样:如何在Django模板中获取模型的对象数?

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

我通过这个varbiles到我的模板,我可以访问模型像section.namesection.id的所有属性等

有一个模型叫做Books它有一个FK Sections模型。当我遍历模板中的secs变量时,如何访问每个段的计数?像{{ sec.Books.count }}

谢谢

如果Books有一个ForeignKey到Sections,那么Django会自动创建章节回书籍反向关系,这将被称为books_set。这是一个管理员,这意味着你可以使用.filter().get().count() - 你可以在你的模板中使用它们。

{{ sec.books_set.count }} 

(顺便说一句,你应该使用单数名词用型号名称,而不是复数 - 的Book代替Books该模型的实例保存信息一点书,并不多。)

另外根据Daniel的说法,Django会自动创建反向关系(如Daniel所述),除非您使用related_name参数覆盖它们的名称。在您的特定情况下,你会是这样的:由

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

然后你就可以访问部分的书算在模板:

{{ sec.books.count }} 

正如你在你的问题暗示。