django - 如何用间接相关的表注释查询集?
问题描述
我有下表:
class Parent:
pass
class Child:
fk_parent = models.OneToOneField(Parent, on_delete=models.CASCADE)
class Cousin:
fk_parent = models.OneToOneField(Parent, on_delete=models.CASCADE)
我想得到一个Child
带有注释的查询集Cousin
。在 PSQL 中,我会简单地写:
SELECT a.*, b.*
FROM child a
INNER JOIN cousin b ON b.fk_parent_id = a.fk_parent_id
这可能吗?
解决方案
由于这两种关系都是OneToOneField
你应该能够使用select_related
和遵循的关系
for child in Child.objects.select_related('fk_parent__cousin'):
print(child, child.fk_parent.cousin)
推荐阅读
- python - 如何同时从多个其他文件编辑和访问一个文件中的变量?
- c++ - Am I missing something or are Virtual calls not as bad performance as people make of them
- python - 无法使用 cx_freeze 和 PySide2 进行编译
- pyspark - 在 pyspark 的 collect_list 中包含空值
- caching - 为什么 L2 缓存利用率低,即使在 cuda 中 L2 缓存命中率约为 93%?
- botframework - ShowTypingMiddleware 在部署时破坏了我的机器人 - BotFramework V4
- excel - 如何使用 VBA 登录网站并将数据检索到 Excel?
- openapi - 对于 OpenAPI 规范 3,我应该如何定义请求正文的参数
- python-3.x - 使用 Caesar Cipher 加密现有的 txt 文件
- git - PR 请求是否与分支或分支中的特定提交有关?