Доброго времени суток.
Я использую django 1.7.6, django rest framework.
В settings.py указал 'PAGE_SIZE': 1000 - и это замечательно работает.
Но вот потребовалось сделать вьюху с raw query set - нету пагинации. Как сделать постраничный просмотр?
serializers.py
class UnionAlertEventSerializer(serializers.Serializer):
id = serializers.IntegerField()
date_time = serializers.DateTimeField()
source = serializers.CharField(max_length=300)
destination = serializers.CharField(max_length=300)
status = serializers.CharField(max_length=30)
comment = serializers.CharField(max_length=300)
views.py
class UnionAlertEventViewSet(viewsets.ModelViewSet):
"""
Union alerts and events
"""
serializer_class = UnionAlertEventSerializer
def list(self, request, *args, **kwargs):
QUERY_SELECT1 = 'SELECT id, date_time, source, destination, status, comment FROM server_alert'
QUERY_SELECT2 = 'SELECT id, date_time, source, destination, status, comment FROM server_event'
QUERY_SELECT = 'SELECT * FROM ((' + QUERY_SELECT1 + ') UNION ALL (' + QUERY_SELECT2 + ')) AS Foo;'
queryset = Alert.objects.raw(QUERY_SELECT)
serializer = UnionAlertEventSerializer(queryset, many=True)
return Response(serializer.data)