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然后允许你使用来自其他模型的外键的基本模型,所以你可以使你的整个应用程序更加灵活.在引擎盖下,它只是一个基础模型的表,每个子模型的表包含一对一的键. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |