繁体   English   中英

Django通过关系统计外键

[英]Django count foreign key through relation

我正在构建一个简单的论坛应用程序,我需要一些帮助,通过关系计算外键对象。

假设我的模型看起来像这样:

class Forum(models.Model):
    title = models.CharField(max_length=255)
    description = models.TextField()
    slug = models.SlugField(unique=True, blank=True)

class Thread(models.Model):
    title = models.CharField(max_length=255)
    forum = models.ForeignKey(to=Forum, related_name='threads')
    slug = models.SlugField(unique=True, blank=True)

class Post(models.Model):
    body = models.TextField()
    author = models.ForeignKey(User)
    thread = models.ForeignKey(to=Thread,related_name='posts')

现在我们创建forum对象。

forum = Forum.objects.get(slug=forum)

我们可以像这样计算论坛里面的线程数: forum.threads.count()

我的问题是,如何计算论坛中的所有帖子?

我尝试过像all_posts = forum.thredas.posts.count()这样的东西,但正如预期的那样它没有用。

谢谢!

通常在Django中,一个很好的原则是,当你想对模型做某事时,你应该从该模型开始查询。 所以,既然你需要计算帖子,你应该从Post模型开始。

从那里,您可以使用双下划线语法过滤到您想要的特定论坛。

forum_posts = Post.objects.filter(thread__forum=my_forum)
forum_post_count = forum_posts.count()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM