from rest_framework import serializers
from django_filters.rest_framework import FilterSet
import django_filters
from app.models import TP


class SerialMyModel(serializers.ModelSerializer):
    class Meta:
        model = TP
        fields = "__all__"


class SerialFilter(FilterSet):
    """
    过滤器,支持模糊查询
    record_time,日期时间格式,如 2023-01-01 00:00:00
    police_id,支持模糊匹配
    event_type,支持模糊匹配
    """
    record_time = django_filters.DateTimeFilter(field_name='record_time', lookup_expr='icontains')
    police_id = django_filters.CharFilter(field_name='police_id', lookup_expr='icontains')
    event_type = django_filters.CharFilter(field_name='event_type', lookup_expr='icontains')
    # 记录时间范围查询
    start_time = django_filters.DateTimeFilter(field_name='record_time', lookup_expr='gte')
    end_time = django_filters.DateTimeFilter(field_name='record_time', lookup_expr='lte')

    class Meta:
        # 指定模型
        models = TP
        # 指定需要模糊查询的字段
        fields = ("record_time", "police_id", "event_type",)