Filter con APIView de Django Rest Framework

En este contenido te explica como filtrar los productos con el parámetro categoría tambien puede adicionar otra condicion como published por ejemplo esta la imagen de url

la ruta con parámetros

Agregar una linea de codigo request.query_params.get(‘category’) que donde captura el valor y agregar en la función filter donde filtra por categoría, agregar condicion cuando haya valor.

from rest_framework import status
from rest_framework.views import APIView 
from rest_framework.response import Response

from product.models import ProductModel
from product.serializers import ProductSerializer 
 
class ProductApiView(APIView):
    def get(self, request):
        queryset = ProductModel.objects.all()        
        if request.query_params.get('search'): 
            queryset = queryset.filter(name__icontains=request.query_params.get('search'))
        if request.query_params.get('category'):
            queryset = queryset.filter(category=request.query_params.get('category'))
        if request.query_params.get('published'):
            queryset = queryset.filter(published=request.query_params.get('published'))
        serializer = ProductSerializer( queryset, many=True)
        return Response(status=status.HTTP_200_OK, data=serializer.data)

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *