def to_representation(self, instance): name = instance.name request = self.context.get("request") representation = super().to_representation(instance) # Add auto links # We use OrderedDict, although it is not necessary, because the default serializer/model for # links already uses OrderedDict, this way we keep consistency between auto link and user # link representation['links'][:0] = get_relation_links( request, 'collection-detail', [name]) return representation
def get(self, request, *args, **kwargs): validate_item(self.kwargs) queryset = self.filter_queryset(self.get_queryset()) serializer = self.get_serializer(queryset, many=True) data = { 'assets': serializer.data, 'links': get_relation_links( request, self.name, [self.kwargs['collection_name'], self.kwargs['item_name']]) } return Response(data)
def get(self, request, *args, **kwargs): queryset = self.filter_queryset(self.get_queryset()) page = self.paginate_queryset(queryset) if page is not None: serializer = self.get_serializer(page, many=True) else: serializer = self.get_serializer(queryset, many=True) data = { 'collections': serializer.data, 'links': get_relation_links(request, self.name) } if page is not None: return self.get_paginated_response(data) return Response(data)
def list(self, request, *args, **kwargs): validate_collection(self.kwargs) queryset = self.filter_queryset(self.get_queryset()) page = self.paginate_queryset(queryset) if page is not None: serializer = self.get_serializer(page, many=True) else: serializer = self.get_serializer(queryset, many=True) data = { 'type': 'FeatureCollection', 'timeStamp': utc_aware(datetime.utcnow()), 'features': serializer.data, 'links': get_relation_links(request, self.name, [self.kwargs['collection_name']]) } if page is not None: return self.get_paginated_response(data) return Response(data)
def list(self, request, *args, **kwargs): validate_search_request = ValidateSearchRequest() validate_search_request.validate( request) # validate the search request queryset = self.filter_queryset(self.get_queryset()) page = self.paginate_queryset(queryset) if page is not None: serializer = self.get_serializer(page, many=True) else: serializer = self.get_serializer(queryset, many=True) data = { 'type': 'FeatureCollection', 'timeStamp': utc_aware(datetime.utcnow()), 'features': serializer.data, 'links': get_relation_links(request, self.name) } if page is not None: return self.paginator.get_paginated_response(data, request) return Response(data)