safesite/safesite/serializers.py

59 lines
2.3 KiB
Python

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')