serializers.py 1.1 KB

1234567891011121314151617181920212223242526272829303132
  1. # coding=utf-8
  2. from rest_framework import serializers
  3. from .models import ExamPaper
  4. from utils.exceptions import CustomError
  5. class ExamPaperSerializer(serializers.ModelSerializer):
  6. subject_name = serializers.CharField(source='subject.name', read_only=True)
  7. class Meta:
  8. model = ExamPaper
  9. fields = "__all__"
  10. def validate(self, attrs):
  11. if 'subject' in attrs and attrs['subject'].delete:
  12. raise CustomError(u'科目[%s]已被删除!' % attrs['subject'].name)
  13. return attrs
  14. def create(self, validated_data):
  15. validated_data['create_user'] = self.context['request'].user
  16. instance = super(ExamPaperSerializer, self).create(validated_data)
  17. instance.update_count()
  18. instance.save()
  19. return instance
  20. def update(self, instance, validated_data):
  21. if instance.delete:
  22. raise CustomError(u'试卷[%s]已经被删除,禁止操作' % instance.name)
  23. instance = super(ExamPaperSerializer, self).update(instance, validated_data)
  24. instance.update_count()
  25. instance.save()
  26. return instance