1
0
forked from erp-dev/erp
Files
erpnew/flower/viewsets.py

50 lines
1.4 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
"""
自定义 ViewSet 基类和分页类
提供统一的分页限制,防止前端无限制请求大量数据。
"""
from rest_framework import viewsets
from rest_framework.pagination import LimitOffsetPagination
class LimitedLimitOffsetPagination(LimitOffsetPagination):
"""
带最大限制的 LimitOffsetPagination
- 默认每页返回 500 条
- 最大每页返回 500 条
- 防止前端请求过多数据
"""
default_limit = 500
max_limit = 500
class LimitedModelViewSet(viewsets.ModelViewSet):
"""
带分页限制的 ModelViewSet 基类
自动应用 LimitedLimitOffsetPagination限制每次最多返回 100 条数据。
所有项目中的 ViewSet 应继承此类以保持一致的分页行为。
"""
pagination_class = LimitedLimitOffsetPagination
class LimitedReadOnlyModelViewSet(viewsets.ReadOnlyModelViewSet):
"""
带分页限制的 ReadOnlyModelViewSet 基类
自动应用 LimitedLimitOffsetPagination限制每次最多返回 100 条数据。
用于只读场景。
"""
pagination_class = LimitedLimitOffsetPagination
class LimitedGenericViewSet(viewsets.GenericViewSet):
"""
带分页限制的 GenericViewSet 基类
自动应用 LimitedLimitOffsetPagination限制每次最多返回 100 条数据。
用于需要自定义 actions 的场景。
"""
pagination_class = LimitedLimitOffsetPagination