| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- from rest_framework import serializers
- from .models import DeviceModel,LocationModel,LocationGroupModel,LocationContainerLink,LocationChangeLog
- from container.models import ContainerListModel
- class ContainerSimpleSerializer(serializers.ModelSerializer):
- class Meta:
- model = ContainerListModel
- # fields = ['id', 'container_code', 'status'] # 按需选择字段
- fields = '__all__' # 或者展示全部字段
- class LocationSerializer(serializers.ModelSerializer):
- class Meta:
- model = LocationModel
- fields = '__all__'
- class LocationListSerializer(serializers.ModelSerializer):
- current_containers = ContainerSimpleSerializer(
- many=True,
- source='get_active_containers',
- read_only=True
- )
- class Meta:
- model = LocationModel
- fields = '__all__'
- read_only_fields = ['id']
- class LocationPostSerializer(serializers.ModelSerializer):
- class Meta:
- model = LocationModel
- fields = '__all__'
- read_only_fields = ['id','row','col','layer', 'max_capacity', 'current_quantity', 'coordinate','access_priority','location_code','location_group','location_type','is_active','shelf_type']
- class LocationGroupSerializer(serializers.ModelSerializer):
- class Meta:
- model = LocationGroupModel
- fields = '__all__'
- read_only_fields = ['id']
- class LocationGroupListSerializer(serializers.ModelSerializer ):
- class Meta:
- model = LocationGroupModel
- fields = '__all__'
- read_only_fields = ['id ']
- class LocationGroupPostSerializer(serializers.ModelSerializer):
- class Meta:
- model = LocationGroupModel
- fields = '__all__'
- read_only_fields = ['id']
- extra_kwargs = {
- 'current_goods_code': {'required': False, 'allow_blank': True},
- 'current_batch': {'required': False, 'allow_blank': True},
- }
- class LocationContainerLinkSerializer(serializers.ModelSerializer):
- """库位-托盘关联序列化器"""
- container = ContainerSimpleSerializer(read_only=True)
- container_code = serializers.CharField(source='container.container_code', read_only=True)
- location_code = serializers.CharField(source='location.location_code', read_only=True)
-
- class Meta:
- model = LocationContainerLink
- fields = ['id', 'location', 'location_code', 'container', 'container_code', 'is_active', 'put_time', 'operator']
- read_only_fields = ['id', 'put_time']
|