python - Django 请求仅显示第一个结果

标签 python django django-models django-queryset

该网站是关于储存来自 ecchi 动漫的 pantsu 图片,可能会根据颜色、角色名称、动漫名称和内衣类型进行研究,与您选择任何标准的顺序无关紧要。

我的 Pantsu 表有 3 个外键 -> 颜色,类型,女孩

我的 Girl 表有一个指向 Anime 的外键。

让我们假设:

>>> 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]

这仍然是正确的,这个女孩目前在我的数据库中只有一件 pantsu,而且是白色的。现在这个:

>>> 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,她与粉红色和黑色相匹配。

为什么我不能得到匹配查询集的每个字段的结果?我错过了什么吗?

最佳答案

好的,因为 girllist 是您必须使用的列表 __in :

Color.objects.filter(pantsu__P_Girl__in=girlList)

否则它只会使用列表中的第一个条目。

关于python - Django 请求仅显示第一个结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35791841/

相关文章:

django - 优化 Django Rest ORM 查询

database - 在django模型中,如何让所有的表名都没有app标签?

python - 如何覆盖类的 __dir__ 方法?

python - 在 Python 中将文本输出到多个终端

python - psycopg 中的 `cursor` 类有什么意义?

python - 如何在 django 中创建下拉菜单

python - reshape pandas 数据框 : New row for every 76 entries

django - 使用带有 token 而不是 Cookie 的 Django session 框架?

Django 检查 2 个模型字段的重复项

django - 如何在同一个模板中使用两个不同的 Django Form?