@@ -43,19 +43,16 @@ def get_count_and_total_count(self, queryset, view):
43
43
44
44
45
45
class DatatablesPageNumberPagination (DatatablesMixin , PageNumberPagination ):
46
- page_query_param = 'start'
47
- page_size_query_param = 'length'
48
-
49
46
def get_page_size (self , request ):
50
47
if self .page_size_query_param :
51
48
try :
52
49
size = int (get_param (request , self .page_size_query_param ))
53
50
if size <= 0 :
54
51
raise ValueError ()
55
- if self .max_page_size :
52
+ if self .max_page_size is not None :
56
53
return min (size , self .max_page_size )
57
54
return size
58
- except ValueError :
55
+ except ( ValueError , TypeError ) :
59
56
pass
60
57
return self .page_size
61
58
@@ -66,6 +63,8 @@ def paginate_queryset(self, queryset, request, view=None):
66
63
DatatablesPageNumberPagination , self
67
64
).paginate_queryset (queryset , request , view )
68
65
66
+ self .page_query_param = 'start'
67
+ self .page_size_query_param = 'length'
69
68
length = get_param (request , self .page_size_query_param )
70
69
71
70
if length is None or length == '-1' :
@@ -103,9 +102,6 @@ def count(self):
103
102
104
103
105
104
class DatatablesLimitOffsetPagination (DatatablesMixin , LimitOffsetPagination ):
106
- limit_query_param = 'length'
107
- offset_query_param = 'start'
108
-
109
105
def get_limit (self , request ):
110
106
try :
111
107
limit_value = int (get_param (request , self .limit_query_param ))
@@ -115,7 +111,7 @@ def get_limit(self, request):
115
111
if self .max_limit is not None :
116
112
return min (limit_value , self .max_limit )
117
113
return limit_value
118
- except ValueError :
114
+ except ( ValueError , TypeError ) :
119
115
return self .default_limit
120
116
121
117
def get_offset (self , request ):
@@ -125,12 +121,14 @@ def get_offset(self, request):
125
121
raise ValueError
126
122
127
123
return offset_value
128
- except ValueError :
124
+ except ( ValueError , TypeError ) :
129
125
return 0
130
126
131
127
def paginate_queryset (self , queryset , request , view = None ):
132
128
if request .accepted_renderer .format == 'datatables' :
133
129
self .is_datatable_request = True
130
+ self .limit_query_param = 'length'
131
+ self .offset_query_param = 'start'
134
132
if get_param (request , self .limit_query_param ) is None :
135
133
return None
136
134
self .count , self .total_count = self .get_count_and_total_count (
0 commit comments