def list(self, request, *args, **kwargs):
'''List the available tilesets
Args:
request (django.http.HTTPRequest): The HTTP request containing
no parameters
Returns:
django.http.JsonResponse: A json file containing a 'count' as
well as 'results' with each tileset as an entry
'''
# only return tilesets which are accessible by this user
if request.user.is_anonymous:
user = gu.get_anonymous_user()
else:
user = request.user
queryset = self.queryset.filter(
dbm.Q(owner=user) | dbm.Q(private=False)
)
if 'ac' in request.GET:
# Autocomplete fields
queryset = queryset.filter(name__contains=request.GET['ac'])
if 't' in request.GET:
# Filter by filetype
queryset = queryset.filter(filetype=request.GET['t'])
if 'dt' in request.GET:
# Filter by datatype
queryset = queryset.filter(datatype__in=request.GET.getlist('dt'))
if 'o' in request.GET:
if 'r' in request.GET:
queryset = queryset.order_by(dbmf.Lower(request.GET['o']).desc())
else:
queryset = queryset.order_by(dbmf.Lower(request.GET['o']).asc())
#ts_serializer = tss.UserFacingTilesetSerializer(queryset, many=True)
page = self.paginate_queryset(queryset)
if page is not None:
serializer = self.get_serializer(page, many=True)
return self.get_paginated_response(serializer.data)
serializer = ts_serializer(queryset, many=True)
return JsonResponse(serializer.data)
"""
return JsonResponse(
{"count": len(queryset), "results": ts_serializer.data}
)
"""
评论列表
文章目录