factory/apps/qm/serializers.py

38 lines
1.7 KiB
Python

from apps.qm.models import QuaStat, TestItem
from apps.utils.constants import EXCLUDE_FIELDS
from apps.utils.serializers import CustomModelSerializer
from rest_framework import serializers
from apps.system.models import Dept, Dictionary
from apps.wpm.models import SfLog
class TestItemSerializer(CustomModelSerializer):
class Meta:
model = TestItem
fields = '__all__'
read_only_fields = EXCLUDE_FIELDS
class QuaStatSerializer(CustomModelSerializer):
year = serializers.IntegerField(label='', required=True)
month = serializers.IntegerField(label='', required=True)
day = serializers.IntegerField(label='', required=True)
belong_dept = serializers.PrimaryKeyRelatedField(label="所属部门", queryset=Dept.objects.all(), required=True)
belong_dept_name = serializers.CharField(source='belong_dept.name', read_only=True)
material_name = serializers.CharField(source='material.name', read_only=True)
testitem_name = serializers.CharField(source='testitem.name', read_only=True)
class Meta:
model = QuaStat
fields = '__all__'
read_only_fields = EXCLUDE_FIELDS + ['type', 'rate_pass']
extra_kwargs = {'val_avg': {'required': True}, 'num_test':{'required': True}, 'num_ok': {'required': True}}
class QuaStatSfLogSerializer(CustomModelSerializer):
sflog = serializers.PrimaryKeyRelatedField(label="值班记录", queryset=SfLog.objects.all(), required=True)
class Meta:
model = QuaStat
fields = '__all__'
read_only_fields = EXCLUDE_FIELDS + ['type', 'year', 'month', 'day']
def validate(self, attrs):
attrs['type'] = 'sflog'
return attrs