filter.py 1.9 KB

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