filter.py 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  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. "group_name": ['icontains'],
  23. "group_type": ['exact','icontains'],
  24. "group_code": ['icontains'],
  25. "status": ['icontains','exact'],
  26. "max_capacity": ['exact', 'range'],
  27. "current_quantity": ['exact', 'range'],
  28. "location_items": ['exact'],
  29. }
  30. class LocationFilter(FilterSet):
  31. class Meta:
  32. model = LocationModel
  33. fields = {
  34. "warehouse_code": ['icontains'],
  35. "warehouse_name": ['icontains'],
  36. "shelf_type": ['icontains'],
  37. "row": ['exact', 'range'],
  38. "col": ['exact', 'range'],
  39. "layer": ['exact', 'range'],
  40. "update_time": ['exact', 'range'],
  41. "empty_label": ['exact'],
  42. "location_code": ['icontains'],
  43. "location_type": ['icontains','exact'],
  44. "status": ['icontains','exact'],
  45. "max_capacity": ['exact', 'range'],
  46. "current_quantity": ['exact', 'range'],
  47. "coordinate": ['icontains'],
  48. }
  49. class LocationContainerLinkFilter(FilterSet):
  50. class Meta:
  51. model = LocationContainerLink
  52. fields = {
  53. "location": ['exact'],
  54. "container": ['exact'],
  55. "put_time": ['exact', 'range'],
  56. "operator": ['icontains'],
  57. "is_active": ['exact'],
  58. }
  59. class LocationChangeLogFilter(FilterSet):
  60. class Meta:
  61. model = LocationChangeLog
  62. fields = {
  63. "location": ['exact'],
  64. "container": ['exact'],
  65. "operation_type": ['exact'],
  66. "related_location": ['exact'],
  67. "timestamp": ['exact', 'range'],
  68. }