Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class PageSerializer(serializers.ModelSerializer):
- class Meta:
- model = Page
- fields = '__all__'
- class TreeBooksSerializer(serializers.ModelSerializer):
- pages = serializers.SerializerMethodField()
- def get_pages(self, obj):
- qs = self.context.get('qs')
- for book in qs.books.all():
- if book.id == obj.id:
- pages = book.pages.all()
- return PageSerializer(pages, many=True).data
- class Meta:
- model = Book
- fields = '__all__'
- class TreeSerializer(serializers.ModelSerializer):
- books = serializers.SerializerMethodField()
- def get_books(self, obj):
- qs = Publisher.objects.filter(id=obj.id).prefetch_related('books', 'books__pages').first()
- books = [book for book in qs.books.all()]
- return TreeBooksSerializer(books, many=True, context={'qs': qs}).data
- class Meta:
- model = Publisher
- fields = '__all__'
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement