Ad uchun api chiqarildi

This commit is contained in:
2025-11-28 16:49:38 +05:00
parent 94f129c446
commit 97e7098b9e
24 changed files with 600 additions and 7 deletions

View File

@@ -1 +1,2 @@
from .home_api import * # noqa
from .ad import * # noqa

View File

@@ -0,0 +1,43 @@
from rest_framework.viewsets import ReadOnlyModelViewSet
from rest_framework.permissions import AllowAny
from drf_spectacular.utils import extend_schema
from django_core.mixins import BaseViewSetMixin
from core.apps.api.models import AdModel
from django_filters.rest_framework import DjangoFilterBackend
from core.apps.api.filters import AdFilter
from core.apps.api.serializers.ad.ad import (
FullListAdSerializer,
RetrieveAdSerializer,
CreateAdSerializer,
)
@extend_schema(tags=["Ads"])
class AdsView(BaseViewSetMixin, ReadOnlyModelViewSet):
queryset = AdModel.objects.all().order_by("-created_at")
serializer_class = FullListAdSerializer
permission_classes = [AllowAny]
filter_backends = [DjangoFilterBackend]
filterset_class = AdFilter
action_permission_classes = {}
action_serializer_class = {
"list": FullListAdSerializer,
"retrieve": RetrieveAdSerializer,
"create": CreateAdSerializer,
}
def list(self, request, *args, **kwargs):
queryset = self.filter_queryset(self.get_queryset())
page = self.paginate_queryset(queryset)
if page is not None:
data = {"ads": page}
serializer = FullListAdSerializer(data, context={"request": request})
return self.get_paginated_response(serializer.data)
data = {"ads": queryset}
serializer = FullListAdSerializer(data, context={"request": request})
response = self.get_paginated_response(serializer.data)
return response