2016-07-09 2 views
2

Я пытаюсь использовать механизмы разбиения на страницы Django Rest Framework в моем случае без успеха.DFR: разбиение на страницы без запроса

class TransactionView(viewsets.ViewSet): 

    serializer_class = TransactionSerializer 

    def list(self, request): 
     # fetching data from external API... 

     serializer = self.serializer_class(data=list_of_json, many=True) 
     if serializer.is_valid(): 
      serializer.save() 
      return Response(serializer.data) 
     else: 
      return Response(serializer.errors) 


class TransactionSerializer(serializers.Serializer): 
    # Serializer (transaction's) fields ... 

    def create(self, validated_data): 
     return APITransaction(**validated_data) 


class APITransaction(object): 

    def __init__(self, arg1, arg2, ...): 
     self.arg1 = arg1 
     ... 

Проблема заключается в том, что регистрируя pagination_class (как я сделал для остальной части моих ресурсов, которые представлены модели), не работает, так как данные создаются/извлекаются на лету, таким образом, я не У меня нет модели/запроса.

Любые идеи о том, как я могу использовать механизм разбиения на страницы DRF?

+0

Здравствуйте, как вы это решили? Вы следили за ответом @Linovia и реализовали свой собственный класс разбивки на страницы? – YuppieNetworking

+0

У меня не было времени, чтобы следовать по пути лучшей практики здесь, поэтому я создал функцию, которая строит ответ вручную, используя 'django.core.paginator', чтобы разбивать' list_of_jsons' и строить 'dict' с' count, next , previous, numPages, results', которые я возвращаю как 'return JsonResponse (the_dict, status = 200, safe = False)'. Я буду искать для фактического кода и представить новый ответ – chefarov

ответ

2

Вы не можете повторно использовать существующие временные рамки DRF, потому что они должны работать с запросом. Однако вы можете бросить свой собственный класс, наследуя BasePagination, хотя я не сделал сам.

Смежные вопросы