2025-03-18 08:46:50 +08:00

53 lines
2.2 KiB
Python
Raw Permalink 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.

# -*- 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': '手机号'}