serializers.py 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. # coding=utf-8
  2. from rest_framework import serializers
  3. from .models import Subject, Chapter
  4. from utils.exceptions import CustomError
  5. class SubjectSerializer(serializers.ModelSerializer):
  6. class Meta:
  7. model = Subject
  8. fields = "__all__"
  9. def create(self, validated_data):
  10. instance = super(SubjectSerializer, self).create(validated_data)
  11. return instance
  12. def update(self, instance, validated_data):
  13. instance = super(SubjectSerializer, self).update(instance, validated_data)
  14. return instance
  15. class ChapterSerializer(serializers.ModelSerializer):
  16. subject_name = serializers.CharField(source='subject.name', read_only=True)
  17. class Meta:
  18. model = Chapter
  19. fields = "__all__"
  20. def validate(self, attrs):
  21. if 'subject' in attrs and attrs['subject'].delete:
  22. raise CustomError(u'科目[%s]已被删除!' % attrs['subject'].name)
  23. return attrs
  24. def create(self, validated_data):
  25. instance = super(ChapterSerializer, self).create(validated_data)
  26. return instance
  27. def update(self, instance, validated_data):
  28. instance = super(ChapterSerializer, self).update(instance, validated_data)
  29. return instance
  30. class SubjectSimpleSerializer(serializers.ModelSerializer):
  31. class Meta:
  32. model = Subject
  33. fields = ['id', 'name', ]
  34. class ChapterSimpleSerializer(serializers.ModelSerializer):
  35. class Meta:
  36. model = Chapter
  37. fields = ['id', 'name', ]