我正在尝试做到这一点,因此当我搜索帖子时,它会根据模型中的标签进行过滤。顺便说一下,我正在使用Django-Taggit。
例如,如果我搜索“苹果”。我希望在搜索时出现所有带有标签苹果的帖子。
到目前为止,我尝试过的几种方法是... 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