from django_filters import FilterSet from .models import DeviceModel,LocationModel,LocationContainerLink,LocationChangeLog class DeviceFilter(FilterSet): class Meta: model = DeviceModel fields = { device_id: ['icontains'], device_name: ['icontains'], device_type: ['icontains'], ip_address: ['icontains'], port: ['exact'], status: ['icontains'], create_time: ['exact', 'range'], update_time: ['exact', 'range'], } class LocationFilter(FilterSet): class Meta: model = LocationModel fields = { warehouse_code: ['icontains'], warehouse_name: ['icontains'], shelf_type: ['icontains'], row: ['exact', 'range'], col: ['exact', 'range'], layer: ['exact', 'range'], update_time: ['exact', 'range'], empty_label: ['exact'], location_code: ['icontains'], location_type: ['icontains'], status: ['icontains'], max_capacity: ['exact', 'range'], current_quantity: ['exact', 'range'], coordinate: ['icontains'], } class LocationContainerLinkFilter(FilterSet): class Meta: model = LocationContainerLink fields = { location: ['exact'], container: ['exact'], put_time: ['exact', 'range'], operator: ['icontains'], is_active: ['exact'], } class LocationChangeLogFilter(FilterSet): class Meta: model = LocationChangeLog fields = { location: ['exact'], container: ['exact'], operation_type: ['exact'], related_location: ['exact'], timestamp: ['exact', 'range'], operator: ['icontains'], wcs_task_id: ['icontains'], }