Compare commits
2 Commits
26128b6ac5
...
bdc2fbe79b
| Author | SHA1 | Date | |
|---|---|---|---|
| bdc2fbe79b | |||
| 74ded25aa0 |
@@ -1,10 +1,11 @@
|
|||||||
from django.urls import include, path
|
from django.urls import include, path
|
||||||
from rest_framework.routers import DefaultRouter
|
from rest_framework.routers import DefaultRouter
|
||||||
|
|
||||||
from core.apps.api.views import CategoryViewSet, SearchHistoryViewSet, HomeAdApiView
|
from core.apps.api.views import CategoryViewSet, SearchHistoryViewSet, HomeAdApiView, CategoryHomeApiViewSet
|
||||||
|
|
||||||
router = DefaultRouter()
|
router = DefaultRouter()
|
||||||
router.register("category", CategoryViewSet, basename="category")
|
router.register("category", CategoryViewSet, basename="category")
|
||||||
|
router.register("category-home-api", CategoryHomeApiViewSet, basename="category-home-api")
|
||||||
router.register("search-history", SearchHistoryViewSet, basename="search-history")
|
router.register("search-history", SearchHistoryViewSet, basename="search-history")
|
||||||
router.register("home-ad", HomeAdApiView, basename="home-ad")
|
router.register("home-ad", HomeAdApiView, basename="home-ad")
|
||||||
urlpatterns = [path("", include(router.urls))]
|
urlpatterns = [path("", include(router.urls))]
|
||||||
|
|||||||
@@ -15,6 +15,7 @@ from core.apps.api.serializers.category import (
|
|||||||
|
|
||||||
@extend_schema(tags=["Category"])
|
@extend_schema(tags=["Category"])
|
||||||
class CategoryViewSet(BaseViewSetMixin, ReadOnlyModelViewSet):
|
class CategoryViewSet(BaseViewSetMixin, ReadOnlyModelViewSet):
|
||||||
|
queryset = Category.objects.filter(level=0)
|
||||||
permission_classes = [AllowAny]
|
permission_classes = [AllowAny]
|
||||||
serializer_class = ListCategorySerializer
|
serializer_class = ListCategorySerializer
|
||||||
pagination_class = None
|
pagination_class = None
|
||||||
@@ -28,18 +29,19 @@ class CategoryViewSet(BaseViewSetMixin, ReadOnlyModelViewSet):
|
|||||||
"create": CreateCategorySerializer,
|
"create": CreateCategorySerializer,
|
||||||
}
|
}
|
||||||
|
|
||||||
def get_queryset(self):
|
|
||||||
qs = Category.objects.all()
|
|
||||||
|
|
||||||
if not self.request.query_params:
|
@extend_schema(tags=["Category"])
|
||||||
qs = qs.filter(level=0)
|
class CategoryHomeApiViewSet(BaseViewSetMixin, ReadOnlyModelViewSet):
|
||||||
return qs
|
queryset = Category.objects.all()
|
||||||
|
permission_classes = [AllowAny]
|
||||||
|
serializer_class = ListCategoryNoChildSerializer
|
||||||
|
pagination_class = None
|
||||||
|
filter_backends = [DjangoFilterBackend]
|
||||||
|
filterset_class = CategoryFilter
|
||||||
|
|
||||||
def get_serializer_class(self):
|
action_permission_classes = {}
|
||||||
if "show_home" in self.request.query_params:
|
action_serializer_class = {
|
||||||
return ListCategoryNoChildSerializer
|
"list": ListCategoryNoChildSerializer,
|
||||||
|
"retrieve": RetrieveCategorySerializer,
|
||||||
if hasattr(self, 'action_serializer_class'):
|
"create": CreateCategorySerializer,
|
||||||
return self.action_serializer_class.get(self.action, self.serializer_class)
|
}
|
||||||
|
|
||||||
return super().get_serializer_class()
|
|
||||||
|
|||||||
Reference in New Issue
Block a user