У меня есть два вида ниже:
class BookApiView(APIView):
filter_backends = (filters.SearchFilter,)
search_fields = ('title',)
authentication_classes = (JSONWebTokenAuthentication, )
permission_classes = (IsAuthenticated, IsNotBlacklistedUser)
def get(self, request):
books = Book.objects.filter(
user=request.user.id, is_published=True).order_by('-title')
serializer = BookSerializer(books, many=True)
return Response(serializer.data)
def post(get, request):
data = request.data
serializer = BookSerializer(data=data)
if serializer.is_valid():
serializer.save(user=request.user)
return Response(serializer.data, status=201)
return Response(serializer.errors, status=400)
class AllBookViewSet(viewsets.ReadOnlyModelViewSet):
serializer_class = AllBookSerializer
filter_backends = (filters.SearchFilter,)
search_fields = ('title',)
def get_queryset(self):
queryset = Book.objects.all()
title = self.request.query_params.get('title', None)
if title is not None:
queryset = queryset.filter(
title__contains=title, is_published=True)
queryset = queryset.filter(is_published=True)
return queryset
Они оба работают на одной модели. Однако с одним (AllBookViewSet) я могу видеть опцию фильтра в пользовательском интерфейсе остальной структуры django, а с другим я не могу.
Не применим ли фильтр django для представлений на основе классов. Я предполагаю, что это не должно иметь место, но тогда, где я иду не так, как надо здесь. Пожалуйста, помогите