Django 链接查询时重复的查询集结果
因此,我尝试将查询链接在一起。这就是我正在做的Django 链接查询时重复的查询集结果,django,django-orm,Django,Django Orm,因此,我尝试将查询链接在一起。这就是我正在做的 queryset_list = modelEmployee.objects.filter(stars__lte=3) A = len(queryset_list) #A=2 queryset_list = queryset_list.filter(skills__skill_description__in=skill_filter) A = len(queryset_list) #A=4 因此,根据上面的结果,我假设得到两个结果,但我得到
queryset_list = modelEmployee.objects.filter(stars__lte=3)
A = len(queryset_list) #A=2
queryset_list = queryset_list.filter(skills__skill_description__in=skill_filter)
A = len(queryset_list) #A=4
因此,根据上面的结果,我假设得到两个结果,但我得到了四个。似乎第一个查询的结果在第二个查询中被复制,因此结果为4。有没有关于为什么要复制结果以及如何解决这个问题的建议?我只希望得到两个项目,因为它通过了两个过滤器
这就是模型
class modelEmployee(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE, null=True, blank=True)
skills = models.ManyToManyField(modelSkill, blank=True)
location = models.PointField(srid=4326,max_length=40, blank=True,null=True)
如果在
ManyToManyField
Django上执行查询,则将执行内部联接
,这意味着联接的每一侧都有一行对应于每个项目。如果您想获得独特的结果,请使用
查看此示例。您能否添加
modeleemployee
定义和skill\u filter
。刚刚更新的postas skills是一个manytomy
field employee实例,该实例启动时间小于3,即2,这两个实例都具有这些技能。这就像[queryset_list = queryset_list.filter(
skills__skill_description__in=skill_filter
).distinct()