gpt4 book ai didi

django - 如何根据 Django 中的子项过滤父项

转载 作者:行者123 更新时间:2023-12-04 06:59:55 24 4
gpt4 key购买 nike

我有这个

from django.db import models

class Kid(models.Model):
name = models.CharField(max_length=200)

class Toy(models.Model):
name = models.CharField(max_length=200)
owner = models.ForeignKey(Kid)

我有这个查询集
kids = Kid.objects.all()
现在我想过滤 children 整个玩具的名字 star在里面

我无法决定应用哪个过滤器
kids.filter(toys_set__icontains='star')

最佳答案

Kid.objects.distinct().filter(toy__name__icontains='star')

请注意 distinct()方法。这是必需的,因为 child 可以有几个“明星”玩具,所以没有 distinct()您将在查询集中获得重复项。

如果您想在使用时按找到的玩具数量过滤 child aggregation :
Kid.objects.distinct().filter(toy__name__icontains='star') \
.annotate(toys_num=Count('toy')).filter(toys_num__gt=4)

关于django - 如何根据 Django 中的子项过滤父项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28059987/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com