self.sort_key = sortify(self.title)
- ret = super(Book, self).save(force_insert, force_update)
+ ret = super(Book, self).save(force_insert, force_update, **kwargs)
if reset_short_html:
self.reset_short_html()
"""
# get relevant books and their tags
objects = cls.tagged.with_all(tags)
+ parents = objects.filter(html_file='').only('slug')
# eliminate descendants
l_tags = Tag.objects.filter(category='book',
- slug__in=[book.book_tag_slug() for book in objects.iterator()])
- descendants_keys = [book.pk for book in cls.tagged.with_any(l_tags).iterator()]
+ slug__in=[book.book_tag_slug() for book in parents.iterator()])
+ descendants_keys = [book.pk for book in cls.tagged.with_any(l_tags).only('pk').iterator()]
if descendants_keys:
objects = objects.exclude(pk__in=descendants_keys)
# get related tags from `tag_counter` and `theme_counter`
related_counts = {}
tags_pks = [tag.pk for tag in tags]
- for book in objects.iterator():
+ for book in objects:
for tag_pk, value in itertools.chain(book.tag_counter.iteritems(), book.theme_counter.iteritems()):
if tag_pk in tags_pks:
continue