mirror of
https://github.com/QingdaoU/OnlineJudge.git
synced 2024-09-21 08:23:20 +00:00
add more validation in paginate_data function
This commit is contained in:
parent
d3fa05242a
commit
de4d50dd99
@ -76,16 +76,24 @@ def paginate_data(request, query_set, object_serializer):
|
|||||||
|
|
||||||
try:
|
try:
|
||||||
limit = int(request.GET.get("limit", "100"))
|
limit = int(request.GET.get("limit", "100"))
|
||||||
except Exception:
|
except ValueError:
|
||||||
|
limit = 100
|
||||||
|
if limit < 0:
|
||||||
limit = 100
|
limit = 100
|
||||||
|
|
||||||
try:
|
try:
|
||||||
offset = int(request.GET.get("offset", "100"))
|
offset = int(request.GET.get("offset", "0"))
|
||||||
except Exception:
|
except ValueError:
|
||||||
offset = 100
|
offset = 0
|
||||||
|
if offset < 0:
|
||||||
|
offset = 0
|
||||||
|
|
||||||
count = query_set.count()
|
results = query_set[offset:offset + limit]
|
||||||
results = object_serializer(query_set[offset:offset + limit], many=True).data
|
if object_serializer:
|
||||||
|
count = query_set.count()
|
||||||
|
results = object_serializer(results, many=True).data
|
||||||
|
else:
|
||||||
|
count = len(query_set)
|
||||||
|
|
||||||
data = {"results": results,
|
data = {"results": results,
|
||||||
"count": count}
|
"count": count}
|
||||||
|
Loading…
Reference in New Issue
Block a user