Taggit Django-返回基于用户帖子标签的帖子视图)



我最近一直在玩Taggit。我已经设法过滤我的帖子模型,通过添加以下过滤器.filter(tags__name__in='categoryone'),基于不同的标签。

尽管如此,有人能为我提供如何根据我的用户在他或她以前的帖子中已经使用的标签来过滤我的帖子的指导吗?

例如,如果我的用户之前在";类别一";标签,他或她将在他们的Post Feed上看到的所有帖子都将是与"标签"相关的标签;类别一";但他或她不会在";第二类";或";第三类";除非他或她在这两个类别中的一个或两个类别内任职。

我希望像.filter(tags=self.request.user)这样的东西能起作用,但这引发了一个标记实例错误。理想情况下,我想添加一个过滤器,过滤我的用户在以前的帖子中使用过的现有标签。

任何例子都将不胜感激!:-(

谢谢!

--

Views.py(查询PostListView(

def get_queryset(self):
user = self.request.user
tags = Tag.objects.filter(post__author=user)
qs = Follow.objects.filter(user=user)
qa = Tag.objects.filter(post__author=user)
follows = [user]
tags = [user]
for obj in qs:
follows.append(obj.follow_user)
for obj in qa:
obj.user = self.request.user
return Post.objects.filter(author__in=follows).filter(author__in=tags).order_by('-date_posted')

型号.py

class Post(models.Model):
content = models.TextField(max_length=1000)
date_posted = models.DateTimeField(default=timezone.now)
image = models.ImageField(default='default.png', upload_to='srv_media')
author = models.ForeignKey(User, on_delete=models.CASCADE)
likes= models.IntegerField(default=0)
dislikes= models.IntegerField(default=0)
tags = TaggableManager()

试图根据您当前的工作给出答案:

def get_queryset(self):
user = self.request.user
tags = Tag.objects.filter(post__author=user)
qs = Follow.objects.filter(user=user)
qa = Tag.objects.filter(post__author=user)
follows = [user]
tags = [user] 
for obj in qs:
follows.append(obj.follow_user)
for obj in qa:
tags.append(obj.post.author)
return Post.objects.filter(author__in=follows).filter(author__in=tags).order_by('-date_posted')

最新更新