filters.py 1.3 KB

123456789101112131415161718192021222324252627282930313233343536
  1. #coding=utf-8
  2. import django_filters
  3. from apps.base import clean_datetime_range
  4. from models import ProductionPlan, SalePlan
  5. class ProductionPlanFilter(django_filters.FilterSet):
  6. no = django_filters.CharFilter(name='no',lookup_expr='icontains')
  7. name = django_filters.CharFilter(name='name', lookup_expr='icontains')
  8. status = django_filters.CharFilter(name='status')
  9. create_user_text = django_filters.CharFilter(name='create_user__name', lookup_expr='icontains')
  10. class Meta:
  11. model = ProductionPlan
  12. fields = (
  13. 'no', 'name', 'status', 'create_user_text'
  14. )
  15. def __init__(self, data=None, *args, **kwargs):
  16. data = clean_datetime_range(data, 'create_time')
  17. super(ProductionPlanFilter, self).__init__(data, *args, **kwargs)
  18. class SalePlanFilter(django_filters.FilterSet):
  19. no = django_filters.CharFilter(name='no',lookup_expr='icontains')
  20. customer_text = django_filters.CharFilter(name='customer__name', lookup_expr='icontains')
  21. create_time = django_filters.DateTimeFromToRangeFilter(field_name='create_time')
  22. class Meta:
  23. model = SalePlan
  24. fields = "__all__"
  25. def __init__(self, data=None, *args, **kwargs):
  26. data = clean_datetime_range(data, 'create_time', 'source')
  27. super(SalePlanFilter, self).__init__(data, *args, **kwargs)