Nessuna descrizione

filters.py 3.1KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. import django_filters
  2. from .models import Data, DataMs, TbFgPressinfoLotlist, LotSummary, DataRl, DataWb, \
  3. LotSummaryRl, LotSummaryWb
  4. class DataFilter(django_filters.FilterSet):
  5. lot_no = django_filters.CharFilter(field_name='lot_no', lookup_expr='icontains')
  6. code = django_filters.CharFilter(field_name='code', lookup_expr='icontains')
  7. r_type = django_filters.CharFilter(method='filter_r_type')
  8. class Meta:
  9. model = Data
  10. fields = ['lot_no', 'code', 'r_type'] # Add fields you want to filter
  11. def filter_r_type(self, queryset, name, value):
  12. # Split the comma-separated values into a list
  13. r_type_list = [v.strip() for v in value.split(',') if v.strip()]
  14. # Filter the queryset using the list
  15. return queryset.filter(**{f"{name}__in": r_type_list})
  16. class DataMsFilter(django_filters.FilterSet):
  17. lot_no = django_filters.CharFilter(field_name='lot_no', lookup_expr='icontains')
  18. code = django_filters.CharFilter(field_name='code', lookup_expr='icontains')
  19. class Meta:
  20. model = DataMs
  21. fields = ['lot_no', 'code'] # Add fields you want to filter
  22. class TbFgPressFilter(django_filters.FilterSet):
  23. productcode = django_filters.CharFilter(field_name='productcode', lookup_expr='icontains')
  24. product_year = django_filters.CharFilter(field_name='product_year', lookup_expr='icontains')
  25. class Meta:
  26. model = TbFgPressinfoLotlist
  27. fields = ['productcode', 'product_year'] # Add fields you want to filter
  28. class LotSummaryFilter(django_filters.FilterSet):
  29. lot_no = django_filters.CharFilter(field_name='lot_no', lookup_expr='icontains')
  30. code = django_filters.CharFilter(field_name='code', lookup_expr='icontains')
  31. class Meta:
  32. model = LotSummary
  33. fields = ['lot_no', 'code'] # Add fields you want to filter
  34. class DataRlFilter(django_filters.FilterSet):
  35. lot_no = django_filters.CharFilter(field_name='lot_no', lookup_expr='icontains')
  36. code = django_filters.CharFilter(field_name='code', lookup_expr='icontains')
  37. class Meta:
  38. model = DataRl
  39. fields = ['lot_no', 'code'] # Add fields you want to filter
  40. class DataWbFilter(django_filters.FilterSet):
  41. lot_no = django_filters.CharFilter(field_name='lot_no', lookup_expr='icontains')
  42. code = django_filters.CharFilter(field_name='code', lookup_expr='icontains')
  43. class Meta:
  44. model = DataWb
  45. fields = ['lot_no', 'code'] # Add fields you want to filter
  46. class LotSummaryRlFilter(django_filters.FilterSet):
  47. lot_no = django_filters.CharFilter(field_name='lot_no', lookup_expr='icontains')
  48. code = django_filters.CharFilter(field_name='code', lookup_expr='icontains')
  49. class Meta:
  50. model = LotSummaryRl
  51. fields = ['lot_no', 'code'] # Add fields you want to filter
  52. class LotSummaryWbFilter(django_filters.FilterSet):
  53. lot_no = django_filters.CharFilter(field_name='lot_no', lookup_expr='icontains')
  54. code = django_filters.CharFilter(field_name='code', lookup_expr='icontains')
  55. class Meta:
  56. model = LotSummaryWb
  57. fields = ['lot_no', 'code'] # Add fields you want to filter