【发布时间】:2019-02-18 04:01:19
【问题描述】:
所以我试图将查询链接在一起。这就是我正在做的事情
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)
【问题讨论】:
-
能否请您添加
modelEmployee定义和skill_filter是什么。 -
刚刚更新了帖子
-
as Skills 是一个
manytomany字段员工实例,开始__lte 比 3(即 2)都具有这些技能。这有点像 [ , , , ] 你只想要用户 ID 吗? -
我想知道的是为什么我会重复。假设第一个查询的结果是 Adam 和 John。在运行第二个查询之后,亚当和约翰再次被添加到查询集中。为什么他们已经存在时又被添加了
-
如果 Adman 和 John 有多个技能他们会添加多次,最好改变过滤的顺序。
标签: django django-orm