No Description

filters.py 4.2KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. import django_filters
  2. from .models import Data, DataMs, TbFgPressinfoLotlist, LotSummary, DataRl, DataWb, \
  3. LotSummaryRl, LotSummaryWb, RotateData, Manualsize
  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
  58. class RotateDataFilter(django_filters.FilterSet):
  59. lot_no = django_filters.CharFilter(field_name='lot_no', lookup_expr='icontains')
  60. code = django_filters.CharFilter(field_name='code', lookup_expr='icontains')
  61. class Meta:
  62. model = RotateData
  63. fields = ['lot_no', 'code'] # Add fields you want to filter
  64. class ManualsizeFilter(django_filters.FilterSet):
  65. lotno = django_filters.CharFilter(field_name='lotno', lookup_expr='icontains')
  66. size_name = django_filters.CharFilter(field_name='size_name', lookup_expr='icontains')
  67. std = django_filters.NumberFilter(field_name='std')
  68. tolun = django_filters.NumberFilter(field_name='tolun')
  69. tolup = django_filters.NumberFilter(field_name='tolup')
  70. created_at = django_filters.DateTimeFilter(field_name='created_at', lookup_expr='gte') # Filter for recent entries
  71. productcode = django_filters.CharFilter(field_name='productcode', lookup_expr='icontains')
  72. class Meta:
  73. model = Manualsize
  74. fields = ['lotno', 'size_name', 'std', 'tolun', 'tolup', 'created_at', 'productcode']