Найти среднее значение после аннотации вычитать без совокупности Django-rest-framework - PullRequest
0 голосов
/ 28 декабря 2018

У меня есть много запросов, которые нужно вернуть в одном запросе, у меня есть запрос с агрегатом, и когда мы объединяем набор запросов с этой функцией и пытаемся сериализовать функцию, возвращается ошибка:

 Traceback (most recent call last):   File
 "C:\Python35\lib\site-packages\django\core\handlers\exception.py",
 line 35, in inner
     response = get_response(request)   File "C:\Python35\lib\site-packages\django\core\handlers\base.py", line
 128, in _get_response
     response = self.process_exception_by_middleware(e, request)   File "C:\Python35\lib\site-packages\django\core\handlers\base.py", line
 126, in _get_response
     response = wrapped_callback(request, *callback_args, **callback_kwargs)   File "C:\Python35\lib\site-packages\django\views\decorators\csrf.py", line
 54, in wrapped_view
     return view_func(*args, **kwargs)   File "C:\Python35\lib\site-packages\rest_framework\viewsets.py", line 103,
 in view
     return self.dispatch(request, *args, **kwargs)   File "C:\Python35\lib\site-packages\rest_framework\views.py", line 483, in
 dispatch
     response = self.handle_exception(exc)   File "C:\Python35\lib\site-packages\rest_framework\views.py", line 443, in
 handle_exception
     self.raise_uncaught_exception(exc)   File "C:\Python35\lib\site-packages\rest_framework\views.py", line 480, in
 dispatch
     response = handler(request, *args, **kwargs)   File "C:\Python35\lib\site-packages\drf_multiple_model\mixins.py", line
 106, in list
     self.check_query_data(query_data)   File "C:\Python35\lib\site-packages\drf_multiple_model\mixins.py", line 40,
 in check_query_data
     '`{}` key'.format(self.__class__.__name__, key) django.core.exceptions.ValidationError: ['All items in the
 ConversasAPIViewSet querylist attribute should contain a `queryset`
 key']

Есть ли какое-либо решение этой проблемы?

APIViewSet:

class ConversasAPIViewSet(ObjectMultipleModelAPIViewSet):  
    kpiDTO = KpiDTO(6)
    json = Conversas.objects.values('nome'
                                   ).annotate(deltaTime = (Max('data') - Min('data'))
                                ).aggregate(tempoMedioTotal=Avg('deltaTime'))

    qtdUsuariosMes, qtdMensagensMes, fraseIntentEntity, tempoMedioTotal = kpiDTO.retornaDTO()
    querylist = [
        {'queryset': qtdMensagensMes, 'serializer_class': QuantidadeMensagensMesSerializer, 'label': 'qtdMensagensMes'},
        {'queryset': qtdUsuariosMes, 'serializer_class': QuantidadeUsuariosMesSerializer,'label': 'qtdUsuariosMes' },
        {'queryset': fraseIntentEntity, 'serializer_class': EntidadeIntencaoSerializer, 'label': 'fraseIntentEntity'},
        {'queryset': json , 'serializer_class': TempoMedioSerializer,  'label': 'tempoMedio'}
    ]

Сериализатор:

class TempoMedioSerializer(serializers.Serializer):
    tempoMedioTotal = serializers.CharField()
...