def get_pagination_introspector(view, si=None):
"""
Create pagination introspector based on view
:param view: DjangoRestFramework view
:param si: SerializerIntrospector
:return: PaginationIntrospector
:rtype: BasePaginationIntrospector
"""
if getattr(view, 'pagination_class', None):
# DjangoRestFramework 3.0 pagination style with pagination class
pagination_class = view.pagination_class
from rest_framework import pagination
if pagination_class == pagination.PageNumberPagination:
return PageNumberPaginationIntrospector(view, pagination_class, si=si)
elif pagination_class == pagination.LimitOffsetPagination:
return LimitOffsetPaginationIntrospector(view, pagination_class, si=si)
elif pagination_class == pagination.CursorPagination:
return CursorPaginationIntrospector(view, pagination_class, si=si)
else:
return BasePaginationIntrospector(view, pagination_class, si=si)
else:
# Unrecognized view type
return BasePaginationIntrospector(si=si)
评论列表
文章目录