Django агрегация данных

Вид данных в таблице.

id  title       sub_id  sub_title
1   "test1"     11      "test4"
1   "test1"     22      "test4"
1   "test1"     33      "test4"
2   "test2"     44      "test5"
2   "test2"     55      "test5"
2   "test2"     66      "test5"
3   "test3"     77      "test6"
3   "test3"     88      "test6"
3   "test3"     99      "test6"

файл model.py

class testmodel(models.Model):
    id = models.IntegerField(primary_key=True, blank=True, null=True)
    title = models.TextField(blank=True, null=True)
    sub_id = models.IntegerField(blank=True, null=True)
    sub_title = models.TextField(blank=True, null=True)
    
    class Meta:
        managed = False
        db_table = 'test_table'

файл serializer.py

class TestSerializer(serializers.ModelSerializer):

    class Meta:
        model = testtable
        fields = [
            'id',
            'title',
            'sub_id',
            'sub_title',
        ]

файл view.py

class TestView(generics.ListAPIView):
    serializer_class = TestSerializer

    def get_queryset(self):
        queryset = testtable.objects.all()
        return queryset

в текущем варианте файла view.py данные выводяться в следующем образе.

[
    {
        "id": 1,
        "title": "test1",
        "sub_id": 11,
        "sub_title": "test4"
    },
    {
        "id": 1,
        "title": "test1",
        "sub_id": 22,
        "sub_title": "test4"
    },
    {
        "id": 1,
        "title": "test1",
        "sub_id": 33,
        "sub_title": "test4"
    },
    {
        "id": 2,
        "title": "test2",
        "sub_id": 44,
        "sub_title": "test5"
    },
    {
        "id": 2,
        "title": "test2",
        "sub_id": 55,
        "sub_title": "test5"
    },
]

А результате нужно добавить ещё одно поле, и сгрупировать по нему все sub_id у которых id одинаковые и на выходе получить следующие данные. проблема в том, что у меня даже нет предположений как это сделать

[
    {
        "id": 1,
        "title": "test1",
        'sub_elements': [
            {
                "sub_id": 11,
                "sub_title": "test4"
            },
            {
                "sub_id": 22,
                "sub_title": "test4"
            },
            {
                "sub_id": 33,
                "sub_title": "test4"
            },
        ]  
    },
    {
        "id": 2,
        "title": "test2",
        'sub_elements':[
            {
                "sub_id": 44,
                "sub_title": "test5"
            },
            {
                "sub_id": 55,
                "sub_title": "test5"
            },
            # and so on
        ]
    },
]

Ответы (0 шт):