53 lines
2.1 KiB
Python
53 lines
2.1 KiB
Python
# -*- 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': '手机号'}
|
||
|