Как подсчитать количество вложенных массивов в django?

Я новичок в django и все еще выясняю, как использовать все функции. Вот результат запроса, который я хочу подсчитать

{
            "id": 1,
            "user_id": 1,
            "encountersDaily": [
                {
                    "id": 1,
                    "DateTime": "2022-08-01T01:22:00Z",
                    "Longtitude": "14.536480570700000",
                    "Latitude": "121.049722723900000",
                    "EncounterExitID": 1,
                    "PromoterID": 1,
                    "GenderID": 1
                },
                {
                    "id": 10,
                    "DateTime": "2022-08-01T01:42:46Z",
                    "Longtitude": "14.536480570700000",
                    "Latitude": "121.049722723900000",
                    "EncounterExitID": 1,
                    "PromoterID": 1,
                    "GenderID": 1
                }
            ],
            
        },
        {
            "id": 4,
            "user_id": 4,
            "encountersDaily": [
                {
                    "id": 6,
                    "DateTime": "2022-08-01T01:42:09Z",
                    "Longtitude": "14.536480570700000",
                    "Latitude": "121.049722723900000",
                    "EncounterExitID": 2,
                    "PromoterID": 4,
                    "GenderID": 1
                },
                {
                    "id": 8,
                    "DateTime": "2022-08-01T01:42:29Z",
                    "Longtitude": "14.536480570700000",
                    "Latitude": "121.049722723900000",
                    "EncounterExitID": 1,
                    "PromoterID": 4,
                    "GenderID": 1
                },
                {
                    "id": 9,
                    "DateTime": "2022-08-01T01:42:38Z",
                    "Longtitude": "14.536480570700000",
                    "Latitude": "121.049722723900000",
                    "EncounterExitID": 1,
                    "PromoterID": 4,
                    "GenderID": 2
                }
            ],
            
        }

У меня есть данные о 2 пользователях, и моя цель - пройти циклом по этому массиву и найти сумму encountersDaily. возможно ли здесь просто использовать функцию filter? или необходим цикл .

Из того, что я могу понять из приведенного вами кода. Ваш запрос должен быть примерно таким.

 from django.db.models import Count

 CountPromoter.objects.filter(
      promotersGroup__GroupID=request.data.get('groupId')
 ).values(
    "id", "user_id", "encountersDaily"
 ).annotate(
     encountersDaily_count=Subquery(Count('encountersDaily')
 )

Вы можете иметь count внутри подзапроса. Мне нужно больше информации о двух других моделях, чтобы написать более точный запрос. Да, и если у вас меньше полей в ответе запроса, попробуйте получить их в значениях или в value_set, а не получать весь ответ.

Вернуться на верх