【发布时间】:2017-10-13 14:55:42
【问题描述】:
我正在尝试创建一个查询,我可以在其中提取屏幕上显示的每个类别的最后 3 个论坛帖子。这是我的模型的设置方式:
class ForumCategory(models.Model):
name = models.CharField(max_length=40)
description = models.TextField()
class_id = models.ForeignKey(Class)
class ForumPost(models.Model):
name = models.CharField(max_length=100)
details = models.TextField()
author = models.ForeignKey(User)
class_id = models.ForeignKey(Class)
category = models.ForeignKey(ForumCategory)
created_at = models.DateTimeField(auto_now_add=True)
我当前的查询一般返回 3 个最近的帖子,而不是每个类别 3 个:
categories = ForumCategory.objects.filter(class_id=class_id)
forum_post = ForumPost.objects.filter(category_id__in=categories.values_list('id', flat=True)).order_by('-category_id')[:3]
所以我首先获取属于特定类别的所有类别,然后我想列出这些类别以及每个类别中的 3 个最新帖子。
【问题讨论】:
标签: python django django-models model