django - Django ORM查询多个模型反向关系
问题描述
我有主模型,五个四个模型中有五个子模型具有外键关系,一个模型与主模型具有一对一的关系。我正在尝试对主模型执行查询并从按“id”排序的子模型中获取相关记录并选择第一条记录。我尝试了多种方法来实现这一点,但总操作需要大约 20 秒才能获取大约 6000 条记录。对于从这些模型中有效获取数据的任何帮助,我将不胜感激。
Model M:
id
name
status
Model SA:
m = Foreignkey(M)
sa1
Model SB:
m = Foreignkey(M)
sb1
Model SC:
m = Foreignkey(M)
sc1
Model SD:
m = Foreignkey(M)
sd1
Model SE:
m = OneToOne(M)
se1
我厌倦了 select_related、prefetch_related,但仍然无法减少周转时间。
在尝试了不同的方法之后,目前,我正在使用以下方法,但从中,我得到了唯一在子模型中有数据的记录。但是无论子模型中的数据如何,我都需要从主模型中获取所有记录。
data = M.objects.exclude(
SA=None,
SB=None,
SC=None,
SD=None,
SE=None,
)
我正在寻找如下输出:
{'id': 1212, 'name':'asdasd', 'sa1':'asdasda, 'sb1':'asdasda, 'sc1':'asdasda, 'sd1':'asdasda, 'se1':'asdasda}
解决方案
推荐阅读
- amazon-web-services - AWS EC2 使用 AWS 服务(如 cron 作业)调度 python 文件
- python - 我如何在 python 代码中使用基于 python 的项目及其命令行
- java - 打印 ArrayList 的值
> 不包含在另一个 ArrayList 中 > - wxpython - wxpython:如何从导入的脚本中使用 SetLabel 更新面板文本?
- python - 使用 OpenCV 对 pytesseract OCR 进行图像预处理
- python - 子集根据他们的标签
- python - 如何使用 Django 和 Pandas 将 excel 文件返回给用户
- asp.net - ASP.NET 根据 URL 改变布局
- pandas - 熊猫四舍五入
- angular - 角度 10 翻译字符串 ID 不匹配