AGUI2022 2022-08-03 21:30 采纳率: 50%
浏览 38
已结题

Django 多表关联查询

django 关联表多表查询问题:
如:有A、B、C、D四个模型。都通过ForeignKey关联。
如:A模型是“jiaoshi”,B模型是xuesheng,C模型是各科成绩。需要查询XXji下面全部学生的各科成绩。

  • 写回答

2条回答 默认 最新

  • ポテトエルフ 2022-08-13 10:30
    关注

    A对B和B对C都是一对多的关系
    可以在模型文件中在ForeignKey里添加参数related_name="XXX",这样就可以通过这个模型的名字.XXX来访问到所有外键数据组成的QueryDict
    比如说在A对于B外键代码是b = models.ForeignKey(B, related_name="a"),B对于C的外键代码是c = models.ForeignKey(c, related_name="b"),那么查询A下面的B的所有的C的代码可以用嵌套循环实现:

    def get(a:A):
      for i in a.b:
        for j in i.c:
          print(j)  # 此时j表示的是一个C模型
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 8月31日
  • 已采纳回答 8月23日
  • 创建了问题 8月3日

悬赏问题

  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
  • ¥15 ETLCloud 处理json多层级问题
  • ¥15 matlab中使用gurobi时报错
  • ¥15 这个主板怎么能扩出一两个sata口
  • ¥15 不是,这到底错哪儿了😭
  • ¥15 2020长安杯与连接网探
  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么