Пример #1
0
 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
Пример #2
0
    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)
Пример #3
0
    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)
Пример #4
0
    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)
Пример #5
0
    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)