serializers.py 962 B

12345678910111213141516171819202122232425
  1. # coding=utf-8
  2. from rest_framework import serializers
  3. from .models import Exam
  4. from utils.exceptions import CustomError
  5. class ExamSerializer(serializers.ModelSerializer):
  6. subject_name = serializers.CharField(source='subject.name', read_only=True)
  7. type_text = serializers.CharField(source='get_type_display', read_only=True)
  8. create_user_text = serializers.CharField(source='create_user.username', read_only=True)
  9. class Meta:
  10. model = Exam
  11. fields = "__all__"
  12. def create(self, validated_data):
  13. validated_data['create_user'] = self.context['request'].user
  14. instance = super(ExamSerializer, self).create(validated_data)
  15. return instance
  16. def update(self, instance, validated_data):
  17. if instance.delete:
  18. raise CustomError(u'考试[%s]已经被删除,禁止操作' % instance.name)
  19. instance = super(ExamSerializer, self).update(instance, validated_data)
  20. return instance