小编pen*_*ent的帖子

Django Rest Framework 按类别重新组合查询集

在我正在处理的当前项目中,我需要按类别重新组合(分组)一个查询集,并将具有相同类别的内容放在一起提供的列表中。我有以下模型结构:

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)
Run Code Online (Sandbox Code Playgroud)

我希望输出序列化结果如下:

    {
     "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",
      }
    ]
  }  
Run Code Online (Sandbox Code Playgroud)

我知道我总是可以遍历查询集并手动对它们进行分组,我想知道是否有一种本地有效的方法来做到这一点。

谢谢

python django serialization grouping django-rest-framework

3
推荐指数
1
解决办法
1630
查看次数