def get(self, request, format=None):
"""
List all keywords (tags, skills) or result list if you use ?search=term%of%search
---
parameters:
- name: search
required: false
type: string
paramType: query
- name: pagination
required: false
type: string
paramType: query
"""
if request.GET.get('search'):
request_terms = request.GET.get('search')
search_terms_array = request_terms.split()
initial_term = search_terms_array[0]
keywords = Keyword.objects.filter(Q(name__icontains=initial_term))
if len(search_terms_array) > 1:
for term in range(1, len(search_terms_array)):
keywords = keywords.filter(Q(name__icontains=search_terms_array[term]))
else:
keywords = get_list_or_404(Keyword)
if request.GET.get('pagination'):
pagination = request.GET.get('pagination')
if pagination == 'true':
paginator = AdministratorPagination()
results = paginator.paginate_queryset(keywords, request)
serializer = KeywordSerializer(results, many=True)
return paginator.get_paginated_response(serializer.data)
else:
return Response(status=status.HTTP_400_BAD_REQUEST)
else:
serializer = KeywordSerializer(keywords, many=True)
return Response(serializer.data, status=status.HTTP_200_OK)
评论列表
文章目录