Как преобразовать sql-скрипт в python (django-rest-framework)

у меня есть две таблицы

class Events(models.Model):
    install_time = models.DateTimeField()
    event_time = models.DateTimeField(primary_key=True)
    appsflyer_id = models.CharField(max_length=255, blank=True)
    media_source = models.CharField(max_length=255, blank=True)
    campaign = models.CharField(max_length=255, blank=True)
    platform = models.CharField(max_length=255, blank=True)
    event_name = models.CharField(max_length=255, blank=True)
    event_revenue = models.DecimalField(max_digits=30, decimal_places=10, blank=True)
    event_revenue_usd = models.DecimalField(max_digits=30, decimal_places=10, blank=True)


class Installs1(models.Model):
    install_time = models.DateTimeField()
    event_time = models.DateTimeField(primary_key=True)
    appsflyer_id = models.CharField(max_length=255, blank=True)
    media_source = models.CharField(max_length=255, blank=True)
    campaign = models.CharField(max_length=255, blank=True)
    platform = models.CharField(max_length=255, blank=True)
    event_name = models.CharField(max_length=255, blank=True)
    event_revenue = models.DecimalField(max_digits=30, decimal_places=20, blank=True)
    event_revenue_usd = models.DecimalField(max_digits=30, decimal_places=20, blank=True)

и иметь SQL-скрипт

with a as (
    select 
        campaign ,
        sum(event_revenue) as event_revenue_sum,
        sum(event_revenue_usd) as event_revenue_usd_sum from events e  
        where e.event_time::date between '2020-06-11' and '2020-06-16'
    group by campaign 
), 
b as (
    select
        campaign,
        count(event_name) as count_installs
    from installs1 i  
    group by campaign
)
select *
from a
left join b 
on a.campaign = b.campaign

я не понимаю, как преобразовать это в код django, чтобы отображать в режиме просмотра, а не в полном

Это мое мнение, но оно не работает

class ReportsView(ListAPIView):
    queryset = Events.objects.all()
    serializer_class = ReportsGenerationSerializer

    def get_queryset(self):
        return Events.objects.aggregate(event_revenue_sum = Sum('event_revenue'),
                                       event_revenue_usd_sum = Sum('event_revenue_usd'))

мой сериализатор

class ReportsGenerationSerializer(serializers.Serializer):
    event_revenue_sum = serializers.IntegerField()
    event_revenue_usd_sum = serializers.IntegerField()


    class Meta:
        model = Events
        fields = ('campaign', 'event_revenue_sum', 'event_revenue_usd_sum')

Как мне нужно перевести этот сложный скрипт? Я совершенно не имею представления, документация мне не помогла(

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