add more validation in paginate_data function

This commit is contained in:
virusdefender 2016-10-31 00:18:17 +08:00
parent d3fa05242a
commit de4d50dd99

View File

@ -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}