filters.py 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. #coding=utf-8
  2. import django_filters
  3. from apps.base import clean_datetime_range
  4. from models import Goods, GoodsGodownEntry
  5. from apps.product.models import ProductBase
  6. class GoodsFilter(django_filters.FilterSet):
  7. name = django_filters.CharFilter(name='product_base__name',lookup_expr='icontains')
  8. model = django_filters.CharFilter(name='product_base__model', lookup_expr='icontains')
  9. enabled = django_filters.CharFilter(name='product_base__enabled')
  10. class Meta:
  11. model = Goods
  12. fields = (
  13. 'name', 'model', 'enabled'
  14. )
  15. def __init__(self, data=None, *args, **kwargs):
  16. data = clean_datetime_range(data, 'create_time')
  17. super(GoodsFilter, self).__init__(data, *args, **kwargs)
  18. class GoodsGodownEntryFilter(django_filters.FilterSet):
  19. no = django_filters.CharFilter(name='no', lookup_expr='icontains')
  20. create_user_text = django_filters.CharFilter(name='create_user__name', lookup_expr='icontains')
  21. status = django_filters.CharFilter(name='status')
  22. create_time = django_filters.DateTimeFromToRangeFilter(field_name='create_time')
  23. check_time = django_filters.DateTimeFromToRangeFilter(field_name='check_time')
  24. class Meta:
  25. model = GoodsGodownEntry
  26. fields = "__all__"
  27. def __init__(self, data=None, *args, **kwargs):
  28. data = clean_datetime_range(data, 'create_time', 'source')
  29. data = clean_datetime_range(data, 'check_time')
  30. super(GoodsGodownEntryFilter, self).__init__(data, *args, **kwargs)
  31. class GoodsProductFilter(django_filters.FilterSet):
  32. name = django_filters.CharFilter(name='name', lookup_expr='icontains')
  33. model = django_filters.CharFilter(name='model', lookup_expr='icontains')
  34. code = django_filters.CharFilter(name='code', lookup_expr='icontains')
  35. enabled = django_filters.CharFilter(name='product_base__enabled')
  36. class Meta:
  37. model = ProductBase
  38. fields = (
  39. 'name', 'model', 'code', 'enabled'
  40. )
  41. def __init__(self, data=None, *args, **kwargs):
  42. data = clean_datetime_range(data, 'create_time')
  43. super(GoodsProductFilter, self).__init__(data, *args, **kwargs)