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]
Я хочу, чтобы это были только новости.