from rest_framework import serializers from ..serializers import HadisListSerializer from ..models import BookReference , BookAuthor , BookReferenceImage class BookAuthorSerializer(serializers.ModelSerializer): class Meta: model = BookAuthor fields = '__all__' class BookReferenceImageSerializer(serializers.ModelSerializer): class Meta: model = BookReferenceImage fields = '__all__' class BookReferenceSerializer(serializers.ModelSerializer): image = BookReferenceImageSerializer( many= True , read_only = True , source = 'bookreference_set' ) volume_count = serializers.SerializerMethodField() class Meta: model = BookReference fields = ['id','title','description','rate','image','volume_count'] def get_volume_count(self,obj): request = self.context.get('request') return BookReference.objects.filter(title=obj.title).count() class BookDetailSerializer(serializers.ModelSerializer): author = BookAuthorSerializer( read_only = True , source = 'bookauthor_set' ) image = BookReferenceImageSerializer( many= True , read_only = True , source = 'bookreference_set' ) volume_count = serializers.SerializerMethodField() hadis = HadisListSerializer( many=True, read_only=True, source='hadisreference_set' ) class Meta: model = BookReference fields = '__all__' def get_volume_count(self,obj): request = self.context.get('request') return BookReference.objects.filter(title=obj.title).count() # def create(self , validated_data): # author = validated_data.pop('author') # book = BookReference.objects.create(**validated_data) # for author in author