2024-05-02 18:24:29 发布
网友
我是我的Django应用程序我正在获取特定模型的所有对象,如下所示:
secs = Sections.objects.filter(order__gt = 5)
我把这些变量传递给我的模板,我可以访问模型的所有属性,比如section.name,section.id,等等
section.name
section.id
有一个称为Books的模型对Sections模型具有FK。当我遍历模板中的secs变量时,如何访问每个部分的图书计数?类似于{{ sec.Books.count }}??
Books
Sections
secs
{{ sec.Books.count }}
谢谢你
至于2019年的答案。我建议在让你的ForeignKey看起来像这样的时候使用related_name:
ForeignKey
related_name
section = models.ForeignKey(Section, on_delete=models.SET_NULL, related_name='books')
然后您可以按如下方式使用它:
{{ section.books.count }}
或者
{{ section.books|length }}
如果Books有一个指向Sections的ForeignKey,那么Django将自动创建一个从节返回书籍的反向关系,这将被称为books_set。这是一个管理器,这意味着您可以在它上使用.filter()、.get()和.count()-并且您可以在模板中使用它们。
books_set
.filter()
.get()
.count()
{{ sec.books_set.count }}
(顺便说一下,您应该使用单数名词作为模型名,而不是复数-Book,而不是Books。该模型的一个实例保存了一本书的信息,而不是很多。)
Book
除了Daniel所说的,Django会自动创建反向关系(正如Daniel在上面所说的),除非您使用related_name参数覆盖它们的名称。在您的特定情况下,您可能会得到如下内容:
class Book(models.Model): section = models.ForeignKey(Section, related_name="books")
然后,可以通过以下方式访问模板中节的帐簿计数:
{{ sec.books.count }}
正如你在问题中暗示的那样。
至于2019年的答案。我建议在让你的
ForeignKey
看起来像这样的时候使用related_name
:然后您可以按如下方式使用它:
或者
如果
Books
有一个指向Sections
的ForeignKey,那么Django将自动创建一个从节返回书籍的反向关系,这将被称为books_set
。这是一个管理器,这意味着您可以在它上使用.filter()
、.get()
和.count()
-并且您可以在模板中使用它们。(顺便说一下,您应该使用单数名词作为模型名,而不是复数-
Book
,而不是Books
。该模型的一个实例保存了一本书的信息,而不是很多。)除了Daniel所说的,Django会自动创建反向关系(正如Daniel在上面所说的),除非您使用related_name参数覆盖它们的名称。在您的特定情况下,您可能会得到如下内容:
然后,可以通过以下方式访问模板中节的帐簿计数:
正如你在问题中暗示的那样。
相关问题 更多 >
编程相关推荐