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()
我正在构建一个简单的 论坛 应用程序,我需要一些帮助 通过关系计算外国 关键对象。
假设我的模型是这样的:
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()