Я пытаюсь сделать так, чтобы при поиске поста он фильтровал по тегам в модели.Кстати, я использую Django-Taggit.
Например, если я ищу «яблоко».Я хочу, чтобы все сообщения с тегом apple отображались при поиске.
Несколько способов, которые я до сих пор пробовал, это ... Post.objects.filter(tags__name__in=[""])
и Post.objects.filter(tags__post__icontains=tagquery)
Ничто из этого не вернуло, поэтому любая помощь будет оценена.
Модель:
class Post(models.Model):
title = models.CharField(max_length=200)
live = models.BooleanField(default=False)
tags = TaggableManager()
slug = models.SlugField(unique=True, blank=True, null=True, default='', max_length=256)
Просмотров:
class SearchListView(ListView):
model = Post
template_name = "public/search.html"
def get_queryset(self):
queryset = super().get_queryset().filter(live=True)
# query = self.request.GET.get("q")
# if query:
# queryset = queryset.filter(title__icontains=query)
tagquery = self.request.GET.get("tag")
if tagquery:
queryset = queryset.filter(tags__post__icontains=tagquery)
return queryset