# coding=utf-8 from rest_framework import serializers from .models import ExamPaper from utils.exceptions import CustomError class ExamPaperSerializer(serializers.ModelSerializer): subject_name = serializers.CharField(source='subject.name', read_only=True) class Meta: model = ExamPaper fields = "__all__" def validate(self, attrs): if 'subject' in attrs and attrs['subject'].delete: raise CustomError(u'科目[%s]已被删除!' % attrs['subject'].name) return attrs def create(self, validated_data): validated_data['create_user'] = self.context['request'].user instance = super(ExamPaperSerializer, self).create(validated_data) instance.update_count() instance.save() return instance def update(self, instance, validated_data): if instance.delete: raise CustomError(u'试卷[%s]已经被删除,禁止操作' % instance.name) instance = super(ExamPaperSerializer, self).update(instance, validated_data) instance.update_count() instance.save() return instance