X-Git-Url: https://git.mdrn.pl/wolnelektury.git/blobdiff_plain/b2d342589a7889a3b096e7192453d53bd28eed7d..e9263ed76910227deccdce1469b4edda3b833be1:/src/api/handlers.py diff --git a/src/api/handlers.py b/src/api/handlers.py index 0dc9cd6d6..827cd7c5f 100644 --- a/src/api/handlers.py +++ b/src/api/handlers.py @@ -13,6 +13,7 @@ from sorl.thumbnail import default from catalogue.forms import BookImportForm from catalogue.models import Book, Tag, BookMedia, Fragment, Collection +from catalogue.models.tag import prefetch_relations from picture.models import Picture from picture.forms import PictureImportForm @@ -206,7 +207,10 @@ class AnonymousBooksHandler(AnonymousBaseHandler, BookDetails): if daisy: books = books.filter(media__type='daisy').distinct() - if books.exists(): + books = books.only('slug', 'title', 'cover', 'cover_thumb') + for category in book_tag_categories: + books = prefetch_relations(books, category) + if books: return books else: return rc.NOT_FOUND @@ -249,7 +253,7 @@ def _tags_getter(category): def _tag_getter(category): @classmethod def get_tag(cls, book): - return ', '.join(tag.name for tag in book.tags.filter(category=category)) + return book.tag_unicode(category) return get_tag