假设我有以下模型:
class Category(models.Model):
name = models.CharField(max_length=10)
class Post(models.Model):
title = models.CharField(max_length=10)
category = models.ForeignKey(Category, on_delete=models.CASCADE)
然后,我想选择所有帖子并按类别分组:
from itertools import groupby
from operator import attrgetter
qs = Post.objects.all().select_related('category').order_by('category')
posts_group = groupby(qs, key=attrgetter('category'))
但是,posts_group不包含预期的数据。
例如,我有两个职位在数据库中,属于不同的类别。查询选择了所有类别,但在最后一个类别组中仅显示一个帖子。
2条答案
按热度按时间bq3bfh9z1#
这个怎么样:
这里还有一篇关于如何执行group_by注解的excellent文章。
iyr7buue2#
您可以执行以下操作:
但是你的
Category
模型应该定义了哈希: