【发布时间】:2018-09-24 12:24:39
【问题描述】:
在我正在处理的当前项目中,我需要按类别重新组合(分组)一个查询集,并将具有相同类别的内容放在一起提供的列表中。 我有以下模型结构:
class Category(models.Model):
title = models.CharField(max_length=255)
class Item(models.Model):
title = models.CharField(max_length=255)
category = models.ForeignKey(to="Category", verbose_name=_('category'), related_name='items',
on_delete=models.SET_NULL, null=True, blank=True)
我希望输出序列化结果如下:
{
"category_title_1":[
{
"id": 1,
"title" : "something",
},
{
"id": 2,
"title": "something else",
}
],
"category_title_2": [
{
"id": 3,
"title": "another string",
},
{
"id": 4,
"title": "and yet another title",
}
]
}
我知道我总是可以遍历查询集并将它们手动分组,我想知道是否有一种本地有效的方法来做到这一点。
谢谢
【问题讨论】:
-
如果你要实现类似节点的结构。我建议
django-mptt和django-rest-framework-recursive。对于这类问题,他们有现成的解决方案
标签: python django django-rest-framework grouping serialization