from django_filters import FilterSet from .models import DeviceModel,LocationModel,LocationContainerLink,LocationChangeLog class DeviceFilter(FilterSet): class Meta: model = DeviceModel fields = { "location": ['exact'], "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'], }