我刚接触过Django-Python并学习如何构建序列化程序。我理解序列化程序的基本实现,但坚持以下特定要求。
这是我的客户事件模型-
class CustomerEvents(models.Model):
       account_number = models.BigIntegerField(blank=False)
       event_type = models.CharField(max_length=255, blank=False, null=False)CustomerEvents中的样本记录:
Account Number    Event Type
A12345             Billing Issues
A12345             Video Services
A12345             Sales我想要创建一个CustomerEventsSerializer,它将返回如下值:
{ 
  "account_number" : A12345, 
  "event_types"    : ['Billing Issues', 'Video Services', 'Sales']
}发布于 2017-10-23 17:01:26
您可以使用此模块https://github.com/kako-nawao/django-group-by,它允许您根据查询集进行分组并返回查询集。
from django.contrib.postgres.aggregates.general import ArrayAgg
qs = CustomerEvents.objects.group_by('account_number').annotate(
        event_types=ArrayAgg('event_type')))现在,您可以使用account_number和event_types方法创建account_number来处理qs[0].event_types的列表。
class CustomerEventsSerializer(serializers.ModelSerializer):
    event_types = serializers.ListField()
    class Meta:
        model = CustomerEvents
        fields = ('account_numer', 'event_types')https://stackoverflow.com/questions/46892217
复制相似问题