filters.py 796 B

123456789101112131415161718192021
  1. # coding=utf-8
  2. import django_filters
  3. from .models import SysLog
  4. from utils.format import clean_datetime_range
  5. class SysLogFilter(django_filters.FilterSet):
  6. type = django_filters.ChoiceFilter(choices=SysLog.TYPE_CHOICES, field_name='type')
  7. create_time = django_filters.DateTimeFromToRangeFilter(field_name='create_time')
  8. name = django_filters.CharFilter(field_name="user__name", lookup_expr="icontains")
  9. description = django_filters.CharFilter(field_name="description", lookup_expr="icontains")
  10. class Meta:
  11. model = SysLog
  12. fields = ('create_time', 'type', 'name', 'description', )
  13. def __init__(self, data=None, *args, **kwargs):
  14. data = clean_datetime_range(data, 'create_time')
  15. super(SysLogFilter, self).__init__(data, *args, **kwargs)