X-Git-Url: https://git.mdrn.pl/wolnelektury.git/blobdiff_plain/ab72083a61fc7a6257101b31ec92d12ea61c7a03..905f7fa0606b3218402df703ffac8bf6f825dde1:/src/api/handlers.py diff --git a/src/api/handlers.py b/src/api/handlers.py index 01430cbcb..827cd7c5f 100644 --- a/src/api/handlers.py +++ b/src/api/handlers.py @@ -6,7 +6,6 @@ import json from django.contrib.sites.models import Site from django.core.urlresolvers import reverse -from django.db.models import Prefetch from django.utils.functional import lazy from piston.handler import AnonymousBaseHandler, BaseHandler from piston.utils import rc @@ -14,7 +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 TagRelation +from catalogue.models.tag import prefetch_relations from picture.models import Picture from picture.forms import PictureImportForm @@ -210,13 +209,7 @@ class AnonymousBooksHandler(AnonymousBaseHandler, BookDetails): books = books.only('slug', 'title', 'cover', 'cover_thumb') for category in book_tag_categories: - books = books.prefetch_related( - Prefetch( - 'tag_relations', - queryset=TagRelation.objects.filter(tag__category=category) - .select_related('tag').only('tag__name_pl', 'object_id'), - to_attr='%s_relations' % category)) - + books = prefetch_relations(books, category) if books: return books else: @@ -260,9 +253,7 @@ def _tags_getter(category): def _tag_getter(category): @classmethod def get_tag(cls, book): - if hasattr(book, '%s_relations' % category): - return ', '.join(rel.tag.name for rel in getattr(book, '%s_relations' % category)) - return ', '.join(book.tags.filter(category=category).values_list('name', flat=True)) + return book.tag_unicode(category) return get_tag