我有两个模型

class Tag(models.Model):
   key = models.CharField(max_length=200)

class Post(models.Model):
   name = models.CharField(max_length=200)
   tags = models.ManyToManyField(Tag)


我试图用标签列表过滤掉帖子。假设标签heatwarm。我将在api函数(['heat', 'warm'])中获得标签列表。我想过滤所有具有标签在列表中的标签的Post数据。我尝试了很多类型,但没有得到正确的输出。有没有办法对单个查询执行此操作?

最佳答案

使用此标记键等于heatwarm的所有帖子

Post.objects.filter(tags__key_in=['heat', 'warm'])


添加唯一性以避免重复:

Post.objects.filter(tags__key_in=['heat', 'warm']).distinct()

关于python - 在Django中查询ManyToMany给我重复的结果,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42956736/

10-09 07:51