2016-10-31 3 views
0

У меня есть метод фасетов, который берет поисковый запрос, что лучший способ получить оба этих выхода, сериализованных в рамках django rest?rest framework несколько уникальных запросов

# This only works for results 
class SearchResultsSerializer(serializers.BaseSerializer): 
    def to_representation(self, obj): 
     return { 
      'a': obj.a, 
      'b': obj.b 
     } 

Цель Выход:

{ 
    "count": 0, 
    "next": "http://localhost:8000/q=Cupertino", 
    "previous": null, 
    "results": [] 
    "facets": [] # <--- can't figure out how to get this 
} 

ответ

0

Так получается, это тривиально, чтобы достичь с api_view, но вы потеряете тонкости, встроенные в режим просмотра, как пагинацией т.д.

from rest_framework.decorators import api_view, permission_classes 
from rest_framework.response import Response 
from rest_framework import permissions 


@api_view(['GET']) 
@permission_classes((permissions.AllowAny,)) 
def my_custom_view(request): 
    queryset = build_a_queryset(request.GET.get('q', '')) 
    serialized_results = ResultsSerializer(queryset, many=True) 
    serialized_facets = FacetsSerializer(queryset, many=True) 

    return Response({ 
     'results': serialized_results.data, 
     'facets': serialized_facets.data, 
     # need to paginate on your own here 
    }) 
Смежные вопросы