filter.py 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. from django_filters import FilterSet
  2. from .models import DeviceModel,LocationModel,LocationGroupModel,LocationContainerLink,LocationChangeLog
  3. class DeviceFilter(FilterSet):
  4. class Meta:
  5. model = DeviceModel
  6. fields = {
  7. "location": ['exact'],
  8. "device_id": ['icontains'],
  9. "device_name": ['icontains'],
  10. "device_type": ['icontains','exact'],
  11. "ip_address": ['icontains'],
  12. "port": ['exact'],
  13. "status": ['icontains'],
  14. "create_time": ['exact', 'range'],
  15. "update_time": ['exact', 'range'],
  16. }
  17. class LocationGroupFilter(FilterSet):
  18. class Meta:
  19. model = LocationGroupModel
  20. fields = {
  21. "warehouse_code": ['icontains'],
  22. "layer": ['exact', 'range'],
  23. "group_name": ['icontains'],
  24. "group_type": ['exact','icontains'],
  25. "group_code": ['icontains'],
  26. "status": ['icontains','exact'],
  27. "max_capacity": ['exact', 'range'],
  28. "current_quantity": ['exact', 'range'],
  29. "location_items": ['exact'],
  30. }
  31. class LocationFilter(FilterSet):
  32. class Meta:
  33. model = LocationModel
  34. fields = {
  35. "warehouse_code": ['icontains'],
  36. "warehouse_name": ['icontains'],
  37. "shelf_type": ['icontains'],
  38. "row": ['exact', 'range'],
  39. "col": ['exact', 'range'],
  40. "layer": ['exact', 'range'],
  41. "update_time": ['exact', 'range'],
  42. "empty_label": ['exact'],
  43. "location_code": ['icontains'],
  44. "location_type": ['icontains','exact'],
  45. "status": ['icontains','exact'],
  46. "max_capacity": ['exact', 'range'],
  47. "current_quantity": ['exact', 'range'],
  48. "coordinate": ['icontains'],
  49. }
  50. class LocationContainerLinkFilter(FilterSet):
  51. class Meta:
  52. model = LocationContainerLink
  53. fields = {
  54. "location": ['exact'],
  55. "container": ['exact'],
  56. "put_time": ['exact', 'range'],
  57. "operator": ['icontains'],
  58. "is_active": ['exact'],
  59. }
  60. class LocationChangeLogFilter(FilterSet):
  61. class Meta:
  62. model = LocationChangeLog
  63. fields = {
  64. "location": ['exact'],
  65. "container": ['exact'],
  66. "operation_type": ['exact'],
  67. "related_location": ['exact'],
  68. "timestamp": ['exact', 'range'],
  69. }