【发布时间】:2021-06-17 05:47:42
【问题描述】:
我有两个模型 Parent 和 Child
class Parent(models.Model):
id = models.IntegerField(...)
class Child(models.Model)
id = models.IntegerField(...)
parent = models.ForeignKey(Parent, ...)
wanted = models.CharField(default="yes")
我想过滤所有与该父级一起出现的子级将“想要”为“是”的所有父级对象
我的代码:
def containsYes(self):
yes_ids = []
qs = self.get_queryset()
for q in qs:
children = Child.objects.filter(parent_id = q.id)
count = children .count()
if children.filter(wanted = 'yes').count() == count
yes_ids.append(q.id)
return qs.filter(id__contains = yes_ids)
我知道这段代码效率很低,并且想要一个只使用查询的更好的解决方案
PS:我是 django 新手
【问题讨论】:
标签: python django django-queryset