2017-03-22 32 views
0

我有两个型号查询多对多在Django给我复制结果

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数据。我尝试了很多类型,并没有得到正确的输出。有没有办法在单个查询上做到这一点?

+0

你能告诉什么输出你除了?我不知道你需要什么。 – Wilfried

回答

2

所有帖子与此标记键等于heatwarm

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

添加不同的,以避免重复:

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