customerwebsitebackend/products/views.py
vickytechkey 0ef971cec4
All checks were successful
Deploy Beta (NATIVE) / deploy (push) Successful in 31s
initial commit
2026-08-14 18:58:18 +05:30

34 lines
1.3 KiB
Python

from rest_framework import generics, permissions
from rest_framework.views import APIView
from rest_framework.response import Response
from .models import Category, Product
from .serializers import CategorySerializer, ProductSerializer
from django.db.models import Q
class CategoryListView(generics.ListAPIView):
queryset = Category.objects.filter(is_active=True)
serializer_class = CategorySerializer
permission_classes = [permissions.AllowAny]
class ProductListView(generics.ListAPIView):
serializer_class = ProductSerializer
permission_classes = [permissions.AllowAny]
def get_queryset(self):
queryset = Product.objects.filter(is_active=True)
category_slug = self.request.query_params.get('category', None)
search_query = self.request.query_params.get('search', None)
if category_slug:
queryset = queryset.filter(category__slug=category_slug)
if search_query:
queryset = queryset.filter(
Q(title__icontains=search_query) |
Q(description__icontains=search_query)
)
return queryset
class ProductDetailView(generics.RetrieveAPIView):
queryset = Product.objects.filter(is_active=True)
serializer_class = ProductSerializer
permission_classes = [permissions.AllowAny]