Группировка по в сериализаторе в Django Rest Framework

Я новичок в Django Rest Framework, я хочу группировать данные моего сериализатора по дате, Как я могу это сделать.

Как я могу сгруппировать это по дате?

моя модель: модель mongo с некоторыми другими полями, но использует только эти два поля

class Activity(Document):
    """
    mongo model
    """
    candidate_id = StringField(required=True, db_field='c')
    timestamp = DateTimeField(required=True, db_field='d')
    ... 
    ... more fields

Мои представления: файл моих представлений

class RecentActionView(generics.ListAPIView): 
    serializer_class = RecentActionSerializer

    def get_queryset(self):
        recruiter_id = self.request.GET.get("recruiter_id")
            activity_list = Activity.objects.filter(recruiter_id=str(recruiter_id)).order_by('-     timestamp')
        return activity_list

мой сериализатор: использование поля serializermethod для получения данных из другой БД с помощью id кандидата из модели деятельности

class RecentActionSerializer(serializers.Serializer):
   
    name = serializers.SerializerMethodField()
    designation = serializers.SerializerMethodField()
    age = serializers.SerializerMethodField()
    timestamp = serializers.DateTimeField(format="%H:%M")


    def get_name(self, obj):
        return something

    def get_designation(self, obj):
        return something
        
    def get_age(self, obj):
        return something

Я хочу сгруппировать мои ответы по дате следующим образом:

[
{
    "date": "2022-12-05",
    "candidates":[
      {
        "name": "One",
        "designation": "Lead",
        "age": 30,
        "timestamp": "14:30"
      }
    ]
  },
  {
    "date": "2022-12-04",
    "candidates":[
      {
        "name": "Two",
        "designation": "Lead",
        "age": 30,
        "timestamp": "14:30",
      }
    ]
    
  }
]

мой реальный ответ таков:

[
  {
      "name": "One",
      "designation": "Lead",
      "age": 30,
      "activity_timestamp": "13:12"
  },
  {
      "name": "Two",
      "designation": "Lead",
      "age": 30,
      "activity_timestamp": "13:12"
  }
]
Вернуться на верх