Я следую инструкциям по Django 2 на примере .
Я не понимаю шаг (2): Почему Count('tags')
не считает общее количество тегов, которыми обладает этот пост?
Я попытался выполнить поиск по справочнику API тегов git, но это не имеет отношения к делу.
Может кто-нибудь объяснить это мне, пожалуйста?
Следующий код:
(1) ищет похожие сообщения, просматривая их общие теги.
(2) использует функцию агрегации количества для генерации вычисляемого поля same_tags
.
(3) упорядочивает результат по количеству общих тегов в порядке убывания et c ...
# List of similar posts
post_tags_ids = post.tags.values_list('id', flat=True)
similar_posts = Post.published.filter(tags__in=post_tags_ids)\
.exclude(id=post.id)
similar_posts = similar_posts.annotate(same_tags=Count('tags'))\
.order_by('-same_tags','-publish')[:4]