From 067e90fd97cb1f3dd918f98aa734c253fd23adfc Mon Sep 17 00:00:00 2001 From: winkidney Date: Thu, 5 Dec 2019 23:51:31 +0800 Subject: [PATCH] Feature: Add full-board-list api --- core/serializers.py | 10 ++++++++++ core/views.py | 14 ++++++++++++++ 2 files changed, 24 insertions(+) diff --git a/core/serializers.py b/core/serializers.py index 59f3d94..12fe989 100644 --- a/core/serializers.py +++ b/core/serializers.py @@ -135,6 +135,16 @@ class PinIdListField(serializers.ListField): ) +class BoardAutoCompleteSerializer(serializers.HyperlinkedModelSerializer): + class Meta: + model = Board + fields = ( + settings.DRF_URL_FIELD_NAME, + 'id', + 'name', + ) + + class BoardSerializer(serializers.HyperlinkedModelSerializer): class Meta: model = Board diff --git a/core/views.py b/core/views.py index 3ba1a03..8510626 100644 --- a/core/views.py +++ b/core/views.py @@ -36,7 +36,21 @@ class BoardViewSet(viewsets.ModelViewSet): permission_classes = [IsOwnerOrReadOnly("submitter"), ] +class BoardAutoCompleteViewSet( + mixins.ListModelMixin, + viewsets.GenericViewSet, +): + queryset = Board.objects.all() + serializer_class = api.BoardAutoCompleteSerializer + filter_backends = (DjangoFilterBackend, OrderingFilter) + filter_fields = ("submitter__username", ) + ordering_fields = ('-id', ) + ordering = ('-id', ) + pagination_class = None + + drf_router = routers.DefaultRouter() drf_router.register(r'pins', PinViewSet) drf_router.register(r'images', ImageViewSet) drf_router.register(r'boards', BoardViewSet) +drf_router.register(r'boards-auto-complete', BoardAutoCompleteViewSet)