加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

sql – 使用django如何将来自不同模型的两个查询组合成一个查询

发布时间:2020-12-12 08:30:41 所属栏目:MsSql教程 来源:网络整理
导读:在我的具体情况下,我有两种“消息”,我需要检索和分页. 我们忽略细节,只是说第一种是一个名为Msg1的模型,另一个叫做Msg2 这两个模型的领域是完全不同的,两个模型共有的唯一字段是“日期”和“标题”(当然,id). 我可以得到Msg1.objects.all()和Msg2.objects.al
在我的具体情况下,我有两种“消息”,我需要检索和分页.

我们忽略细节,只是说第一种是一个名为Msg1的模型,另一个叫做Msg2

这两个模型的领域是完全不同的,两个模型共有的唯一字段是“日期”和“标题”(当然,id).

我可以得到Msg1.objects.all()和Msg2.objects.all(),但我可以将这两个查询组合成一个查询,按日期排序,并分页?

我需要保留查询的懒惰性质.

简单的解决方案是列出(查询)两个查询并将它们组合在一个python列表中.但由于明显的原因,这是无效率的.

我在模型和dp-api上查看了django引用,但似乎没有办法将不同模型/表的查询组合成一个.

解决方法

我建议你使用 Model inheritance.

创建一个包含日期和标题的基本模型.子类Msg1和Msg2如下所述.使用基本模型进行所有查询(填写页面),然后在最后一刻切换到派生类型.

关于继承的真正伟大的事情是,django然后允许你使用来自其他模型的外键的基本模型,所以你可以使你的整个应用程序更加灵活.在引擎盖下,它只是一个基础模型的表,每个子模型的表包含一对一的键.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读