Django-taggit получить количество постов, в которых используется определенный тег

Что я хочу сделать, так это получить количество постов для определенного тега, наподобие того, как это делают Instagram и Twitter, я нашел несколько решений this и this. Я хочу уточнить, является ли это единственным способом достичь того, что я хочу. Не будет ли плохо подсчитывать количество постов каждый раз, когда кто-то пытается получить доступ к тегу?

Итак, я создал пользовательский тег, следуя этим инструкциям, и добавил поле num_posts.

class Hashtag(TagBase):
num_posts = models.IntegerField(default=0, blank=False, null=False)

class Meta:
    verbose_name = _("Tag")
    verbose_name_plural = _("Tags")

Итак, как мне увеличить значение num_posts каждый раз, когда новый пост использует этот тег? Или когда пост создает новый тег, автоматически присваивать значение 1 для num_posts. Я попытался заглянуть в исходный код django-taggit, в частности в TaggableManager, чтобы посмотреть, могу ли я переопределить там что-то и получить желаемые результаты. Пока мне ничего не удалось сделать. Кто-нибудь может мне помочь?

Вернуться на верх