48 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Python
		
	
	
	
			
		
		
	
	
			48 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Python
		
	
	
	
from apps.mtm.models import Step
 | 
						|
from rest_framework import serializers
 | 
						|
from rest_framework.serializers import ModelSerializer
 | 
						|
 | 
						|
from .models import Equipment,Equipmentrecord
 | 
						|
from apps.system.serializers import OrganizationSimpleSerializer, UserSimpleSerializer
 | 
						|
 | 
						|
 | 
						|
class EquipmentSerializer(ModelSerializer):
 | 
						|
    belong_dept_ = OrganizationSimpleSerializer(source='belong_dept', read_only=True)
 | 
						|
    keeper_ = UserSimpleSerializer(source='keeper', read_only=True)
 | 
						|
    step_ = serializers.SerializerMethodField()
 | 
						|
    class Meta:
 | 
						|
        model = Equipment
 | 
						|
        fields = '__all__'
 | 
						|
 | 
						|
    @staticmethod
 | 
						|
    def setup_eager_loading(queryset):
 | 
						|
        """ Perform necessary eager loading of data. """
 | 
						|
        queryset = queryset.select_related('belong_dept','keeper')
 | 
						|
        return queryset
 | 
						|
 | 
						|
    def get_step_(self, obj):
 | 
						|
        return Step.objects.filter(equipments=obj).values('id', 'name', 'number')
 | 
						|
 | 
						|
 | 
						|
class EquipmentSimpleSerializer(ModelSerializer):
 | 
						|
    class Meta:
 | 
						|
        model = Equipment
 | 
						|
        fields = ['id', 'number', 'name']
 | 
						|
 | 
						|
 | 
						|
 | 
						|
class EquipmentrecordSerializer(ModelSerializer):
 | 
						|
    equipment_ = EquipmentSerializer(source='equipment', read_only=True)
 | 
						|
    class Meta:
 | 
						|
        model = Equipmentrecord
 | 
						|
        fields = '__all__'
 | 
						|
 | 
						|
    @staticmethod
 | 
						|
    def setup_eager_loading(queryset):
 | 
						|
        """ Perform necessary eager loading of data. """
 | 
						|
        queryset = queryset.select_related('equipment')
 | 
						|
        return queryset
 | 
						|
 | 
						|
class DaqCreateSerializer(serializers.Serializer):
 | 
						|
    number = serializers.CharField()
 | 
						|
    file = serializers.FileField() |