新功能: 封装时间范围的搜索,示例在登录日志页面

This commit is contained in:
猿小天
2024-01-02 13:50:43 +08:00
parent 26ed59d1ff
commit d4e43e28e8
4 changed files with 124 additions and 9 deletions

View File

@@ -7,6 +7,8 @@
@Remark: 自定义视图集
"""
from django.db import transaction
from django_filters import DateTimeFromToRangeFilter
from django_filters.rest_framework import FilterSet
from drf_yasg import openapi
from drf_yasg.utils import swagger_auto_schema
from rest_framework.decorators import action
@@ -16,11 +18,23 @@ from dvadmin.utils.filters import DataLevelPermissionsFilter
from dvadmin.utils.import_export_mixin import ExportSerializerMixin, ImportSerializerMixin
from dvadmin.utils.json_response import SuccessResponse, ErrorResponse, DetailResponse
from dvadmin.utils.permission import CustomPermission
from dvadmin.utils.models import get_custom_app_models
from dvadmin.utils.models import get_custom_app_models, CoreModel
from dvadmin.system.models import FieldPermission, MenuField
from django_restql.mixins import QueryArgumentsMixin
class CoreModelFliterSet(FilterSet):
"""
封装一个时间范围过滤器:
使用方式:
{'create_datetime_after': '2024-01-01 8:00', 'create_datetime_before': '2024-01-05 10:00'}
"""
create_datetime = DateTimeFromToRangeFilter()
update_datetime = DateTimeFromToRangeFilter()
class Meta:
model = None
fields = "__all__"
class CustomModelViewSet(ModelViewSet, ImportSerializerMixin, ExportSerializerMixin, QueryArgumentsMixin):
"""
自定义的ModelViewSet:
@@ -38,6 +52,7 @@ class CustomModelViewSet(ModelViewSet, ImportSerializerMixin, ExportSerializerMi
filter_fields = '__all__'
search_fields = ()
extra_filter_class = [DataLevelPermissionsFilter]
filterset_class = CoreModelFliterSet
permission_classes = [CustomPermission]
import_field_dict = {}
export_field_label = {}