【发布时间】:2011-08-04 15:10:31
【问题描述】:
假设模型X 有一个字段n(一个整数)。现在我还有一个模型Y,其中有字段n 和m(整数)。是否可以使用 Django ORM 来选择 x(模型 X)使得存在 y(模型 Y)使得 x.n = y.n 和 y.m = m 对于给定值 m?
请不要建议我在两个模型之间引入ForeignKey 关系或类似的东西。我想具体知道是否可以在不修改模型的情况下实现这一目标。在我正在研究的确切情况下,给定的关系是通用的。而泛型关系的反面可以是任何东西,所以根据文档我不能在不同的模型中多次介绍GenericRelation。
【问题讨论】:
-
只有我一个人,还是功能上的严重差距?它怎么可能不是微不足道的?我开始认为他们将代码保存在 svn 中是一个不好的迹象。
-
在 Django 世界中,没有你想象的那么严格。如果您想进行任意连接,原始 SQL(返回真实模型对象)可以满足您的需求。而且...你知道,我也喜欢 git 和 Mercurial,但如果说对开源项目最大的抱怨是它对源代码控制工具的品味,那简直就是天堂。
-
@Christophe 原始 SQL 的问题是您需要手动生成表名和列名。而且我认为它使当前的交易变得肮脏。我知道这是可能的,但是如果每次我需要做一些有点不标准的事情,我需要求助于手工编写 SQL,我宁愿根本不使用 ORM。在使用 Django ORM 一段时间后,我认为它在设计上被严重破坏了。
标签: python django django-models join django-orm