from rest_framework.viewsets import ModelViewSet from rest_framework.permissions import IsAuthenticated from rest_framework.filters import SearchFilter, OrderingFilter from django_filters.rest_framework import DjangoFilterBackend class BaseModelViewSet(ModelViewSet): """ CMS-like Base ViewSet - CRUD อัตโนมัติ - Pagination (จาก settings.py) - Filter / Search / Ordering - Permission กลาง """ # default permission (override ได้) permission_classes = [IsAuthenticated] # filter backend มาตรฐานแบบ CMS filter_backends = [ DjangoFilterBackend, SearchFilter, OrderingFilter, ] # ค่า default (override ต่อ model) filterset_fields = "__all__" search_fields = [] ordering_fields = "__all__" ordering = ["-id"]