filter.py 1.9 KB

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