django - 通过外键快速获取与其他 2 个对象相关的对象的查询集
问题描述
这是我的模型:
class A(models.Model):
#Some fields
class B(models.Model):
#Some fields
class C(models.Model):
a = models.ForeignKey(A)
b = models.ForeignKey(B)
#Some more fields
class Meta:
unique_together = ['a', 'b']
现在基于 A (say 'a') 的某个对象,我想要设置 Ca = 'a' 和 Cb = 'b' 的所有 'b' 。
换句话说,获取 B 的一组对象,其条目存在于 a.c_set
目前我这样做的方式是:
qset_c = C.objects.filter(a='a')
qset_b = [c.b for c in qset_c]
首先,这给了我一个列表(最好使用查询集)。
其次,我担心第 2 行有列表理解,因为它可能需要大量时间来处理大量数据。
有没有更好的方法来实现这一目标?
注意:我理解,声明有点不清楚。如果有人可以对其进行编辑以使其更清晰,那将很有帮助
解决方案
这会做你想要的吗?
set_c = C.objects.filter(a=a).values_list('b', flat=True)
推荐阅读
- javascript - 如何在我的第一页 HTML 上限制我的 Javascript 代码?
- amazon-web-services - MS Graph Webhook 只能调用公共 API 吗?
- json - 如何保存 JSON 对象并在另一个请求中使用它?
- reactjs - 无法使用 'useStoreState 在 react easy-peasy 中访问状态
- python - Django - 为什么我在认证后没有登录?
- python - 如何在 Excel 表格中复制数据框(熊猫)
- python-3.x - 如何在 groupby 的输出中为 var 创建名称 - Python
- sql - 选择总和大于或等于的前几行
- bash - 启动 vim 的 bash 脚本可以在管道中中止吗?
- python - 具有大量实例的 Python 类