# -*- coding: utf-8 -*- #此文件请放在lyFormBuilder的views目录中 import django_filters from rest_framework import serializers from utils.viewset import CustomModelViewSet from utils.serializers import CustomModelSerializer from utils.common import ast_convert from apps.lyFormBuilder.models.models_teacherManage import teacherManage class teacherManageFilterSet(django_filters.rest_framework.FilterSet): """ 老师管理 过滤器 URL格式:http://127.0.0.1:8000/?beginAt=2020-12-02 12:00:00&endAt=2021-12-13 12:00:00 field_name: 过滤字段名,一般应该对应模型中字段名 lookup_expr: 查询时所要进行的操作,和ORM中运算符一致 fields:指明过滤字段,可以是列表,也可以字典 exclude = ['password'] 排除字段,不允许使用列表中字典进行过滤 自定义字段名可以和模型中不一致,但一定要用参数field_name指明对应模型中的字段名 """ #开始时间 beginAt = django_filters.DateTimeFilter(field_name='create_datetime', lookup_expr='gte') # 指定过滤的字段 #结束时间 endAt = django_filters.DateTimeFilter(field_name='create_datetime', lookup_expr='lte') name = django_filters.CharFilter(field_name='name',lookup_expr='icontains') birthday_beginAt = django_filters.DateFilter(field_name='birthday', lookup_expr='gte') birthday_endAt = django_filters.DateFilter(field_name='birthday', lookup_expr='lte') class Meta: model = teacherManage fields = ['beginAt', 'endAt', 'name', 'birthday_beginAt', 'birthday_endAt'] class teacherManageSerializer(CustomModelSerializer): """ teacherManage 序列化器 """ class Meta: model = teacherManage read_only_fields = ["id"] fields = '__all__' class teacherManageViewSet(CustomModelViewSet): """ teacherManage 接口 """ queryset = teacherManage.objects.all() serializer_class = teacherManageSerializer filterset_class = teacherManageFilterSet export_download_filename = "导出老师管理数据" export_field_dict = {'name': '姓名', 'phone': '手机号'}