Skip to content

Instantly share code, notes, and snippets.

@zhanghui9700
Last active June 18, 2020 17:04
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save zhanghui9700/e7fef33d4a1d72d2485902eb8064fc20 to your computer and use it in GitHub Desktop.
Save zhanghui9700/e7fef33d4a1d72d2485902eb8064fc20 to your computer and use it in GitHub Desktop.
// request拦截器, 改变url 或 options.
request.interceptors.request.use((url, options) => {
const c_token = getAuthority()
console.log("token: %s", c_token);
if (c_token) {
const headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'JWT ' + c_token[0]
};
return (
{
url: url,
options: { ...options, headers: headers },
}
);
} else {
return (
{
url: url,
options: { ...options },
}
);
}
})
#-*- coding=utf-8 -*-
from django.core.paginator import Paginator as DjangoPaginator
from django.core.paginator import InvalidPage
from rest_framework.response import Response
from rest_framework.pagination import PageNumberPagination
DEFAULT_PAGE = 1
class PagePagination(PageNumberPagination):
page_size = 10
page_size_query_param = 'pageSize'
page_query_param = 'current'
max_page_size = 100
django_paginator_class = DjangoPaginator
def paginate_queryset(self, queryset, request, view=None):
page_size = self.get_page_size(request)
if not page_size:
page_size = 10
paginator = self.django_paginator_class(queryset, page_size)
page_number = request.query_params.get(self.page_query_param, 1)
if page_number in self.last_page_strings:
page_number = paginator.num_pages
try:
self.page = paginator.page(page_number)
except InvalidPage as exc:
page_number = 1
self.page = paginator.page(page_number)
if paginator.num_pages > 1 and self.template is not None:
self.display_page_controls = True
self.request = request
return list(self.page)
def get_paginated_response(self, data):
return Response({
'links': {
'next': self.get_next_link(),
'previous': self.get_previous_link()
},
'total': self.page.paginator.count,
'page': int(self.request.GET.get(self.page_query_param, DEFAULT_PAGE)), # can not set default = self.page
'page_size': int(self.request.GET.get(self.page_size_query_param, self.page_size)),
'data': data
})
@zhanghui9700
Copy link
Author

pro-table

 pagination={{
          defaultPageSize: 10,
          pageSizeOptions: ["10", "20", "50"],
          showSizeChanger: true,
        }}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment