from .models import * from rest_framework import serializers class InspectItemSerializer(serializers.ModelSerializer): class Meta: model = InspectItem fields = '__all__' class UserSerializer(serializers.ModelSerializer): class Meta: model = User fields = ('userid','name','username') read_only_fields = ('userid',) class EquipmentCheckItemSerializer(serializers.ModelSerializer): class Meta: model = EquipmentCheckItem fields = '__all__' class EquipmentCheckFormSerializers(serializers.Serializer): id = serializers.IntegerField(read_only=True) name = serializers.CharField() desc = serializers.CharField() usecomp = serializers.PrimaryKeyRelatedField(read_only=True) createby = UserSerializer(read_only=True) items = serializers.SerializerMethodField(read_only=True) def create(self, validated_data): items = validated_data.pop('items') instance = EquipmentCheckForm.objects.create(**validated_data) validated_data['items'] = items return instance def update(self,instance,validated_data): items = validated_data.pop('items') instance = instance.update(**validated_data) validated_data['items'] = items return instance def get_items(self,obj): queryset = EFormItems.objects.filter(equipment_check_form=obj).all() return [{'id':row.equipment_check_item.id,'name':row.equipment_check_item.name,'content':row.equipment_check_item.content, 'type':row.equipment_check_item.type.dickeyid if row.equipment_check_item.type else None, 'type_name':row.equipment_check_item.type.dickeyname if row.equipment_check_item.type else None} for row in queryset] class EquipmentCheckFormSerializers2(serializers.Serializer): id = serializers.IntegerField(read_only=True) name = serializers.CharField() desc = serializers.CharField() usecomp = serializers.PrimaryKeyRelatedField(read_only=True) createby = UserSerializer(read_only=True) class TrainPlanSerializer(serializers.ModelSerializer): class Meta: model = TrainPlan fields = '__all__' class TrainPlanUpdateSerializer(serializers.ModelSerializer): class Meta: model = TrainPlan fields = ('purpose','year','month', 'manager', 'period', 'group')