Django 请求仅显示第一个结果
Django request showing only the first result
该网站是关于存放 ecchi 动漫中的 pantsu 图片,可能会根据颜色、角色名称、动漫名称和内衣类型进行研究,与您选择的顺序无关 select标准。
我的 Pantsu table 有 3 个外键 -> 颜色、类型、女孩
我的女孩 table 有一个动漫外键。
让我们假设:
>>> girlList = Girl.objects.all()
>>> girlList
>>> [<Girl: Hanekawa Tsubasa>, <Girl: Hachikuji Mayoi>, <Girl: Hitagi Senjōgahara>]
好的,这就是我们想要的,但是现在,还有一件事:
>>> Color.objects.filter(pantsu__P_Girl__Girl_Name='Hachikuji Mayoi')
[Color: White]
还是对的,这个妹子目前在我的数据库里只有一件裤子,而且是白色的。现在这个 :
>>> Color.objects.filter(pantsu__P_Girl__Girl_Name='Hanekawa Tsubasa')
[Color: Black, Color: Pink]
再次更正,但这里出现了错误的部分,如果我想从我的数据库中获取所有女孩的颜色,只有这 2 个女孩,我会得到这样的结果,[White, Pink, Black] ,或类似的东西,但我没有。看
Color.objects.filter(pantsu__P_Girl=girlList)
[Color: Pink, Color: Black]
我只从我的查询集中得到第一个元素的结果,这里我得到粉红色和黑色,因为 girlList 的第一个元素是 Hanekawa Tsubasa,她与粉红色和黑色相匹配。
为什么我不能得到匹配查询集的每个字段的结果?我错过了什么吗?
使用__in
Color.objects.filter(pantsu__P_Girl__in=girlList)
__in 接受一个列表作为输入,并且 returns 具有与列表中任何元素关联的 Girl 属性的所有记录
但是根据问题,如果 girlList 总是 Girl.objects.all()
,那么你可以使用:
Color.objects.filter(pantsu__P_Girl_isnull=False)
或
from django.db.models import Q
Color.objects.filter(~Q(pantsu__P_Girl=None))
这会过滤所有没有 Girl 的颜色对象 None
好的,因为 girllist
是您必须使用的列表 __in
:
Color.objects.filter(pantsu__P_Girl__in=girlList)
否则它只会使用列表中的第一个条目。
该网站是关于存放 ecchi 动漫中的 pantsu 图片,可能会根据颜色、角色名称、动漫名称和内衣类型进行研究,与您选择的顺序无关 select标准。
我的 Pantsu table 有 3 个外键 -> 颜色、类型、女孩
我的女孩 table 有一个动漫外键。
让我们假设:
>>> girlList = Girl.objects.all()
>>> girlList
>>> [<Girl: Hanekawa Tsubasa>, <Girl: Hachikuji Mayoi>, <Girl: Hitagi Senjōgahara>]
好的,这就是我们想要的,但是现在,还有一件事:
>>> Color.objects.filter(pantsu__P_Girl__Girl_Name='Hachikuji Mayoi')
[Color: White]
还是对的,这个妹子目前在我的数据库里只有一件裤子,而且是白色的。现在这个 :
>>> Color.objects.filter(pantsu__P_Girl__Girl_Name='Hanekawa Tsubasa')
[Color: Black, Color: Pink]
再次更正,但这里出现了错误的部分,如果我想从我的数据库中获取所有女孩的颜色,只有这 2 个女孩,我会得到这样的结果,[White, Pink, Black] ,或类似的东西,但我没有。看
Color.objects.filter(pantsu__P_Girl=girlList)
[Color: Pink, Color: Black]
我只从我的查询集中得到第一个元素的结果,这里我得到粉红色和黑色,因为 girlList 的第一个元素是 Hanekawa Tsubasa,她与粉红色和黑色相匹配。
为什么我不能得到匹配查询集的每个字段的结果?我错过了什么吗?
使用__in
Color.objects.filter(pantsu__P_Girl__in=girlList)
__in 接受一个列表作为输入,并且 returns 具有与列表中任何元素关联的 Girl 属性的所有记录
但是根据问题,如果 girlList 总是 Girl.objects.all()
,那么你可以使用:
Color.objects.filter(pantsu__P_Girl_isnull=False)
或
from django.db.models import Q
Color.objects.filter(~Q(pantsu__P_Girl=None))
这会过滤所有没有 Girl 的颜色对象 None
好的,因为 girllist
是您必须使用的列表 __in
:
Color.objects.filter(pantsu__P_Girl__in=girlList)
否则它只会使用列表中的第一个条目。