Django-taggit similar_objects(): как указать модель в кверисете

Я использую django-taggit на своем сайте в нескольких приложениях. Пакет использует общий внешний ключ (по умолчанию), что позволяет ему работать со многими моделями, что очень удобно при работе с тегами и отображении различных объектов, отфильтрованных по определенным тегам. Но это поведение по умолчанию не удовлетворяет меня, когда я пытаюсь найти похожие объекты, например:

# news/views.py
class NewsDetailView(TagMixin, FormMixin, DetailView):
    model = News
    ...
    def get_context_data(self, **kwargs):
        context = super().get_context_data(**kwargs)
        related_items = self.object.tags.similar_objects()[:4]
        context['related_items'] = related_items
        return context

В данном случае я хочу выбрать похожие новости, но вместо этого получаю похожие объекты всех типов, включая статьи или товары магазина. Пожалуйста, скажите, как я могу указать свою модель в этой команде:

related_items = self.object.tags.similar_objects()[:4]

Я хочу, чтобы это были только новости.

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