29 lines
896 B
Python
29 lines
896 B
Python
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"] |