0

大家。

我使用 Django 1.3 和 Postgres 9.0。我有非常复杂的 sql 查询,它使用一些额外的字段扩展了简单的模型表查找。并且它包含在表函数中,因为它是参数化的。
一个月前,我设法在原始查询的帮助下使其工作,但 RawQuerySet 缺少许多我真正需要的功能(过滤器、count() 和 clone() 方法、可链接性)。
这个想法看起来很简单。QuerySet 让我执行这个查询:

SELECT "table"."field1", ... ,"table"."fieldN" FROM "table"

而我需要这样做:

SELECT "table"."field1", ... ,"table"."fieldN" FROM proxy(param1, param2)

所以问题是:我该怎么做?我已经开始创建自定义管理器,但不能用自定义字符串替换 model.db_table(因为它被引用并且数据库停止识别函数调用)。
如果没有办法用函数替换表,我想知道我是否可以从 RawQuerySet 创建 QuerySet(不是最干净的解决方案,但简单的 RawQuerySet 给......一个身体部位带来了如此多的痛苦)。

4

1 回答 1

1

如果您的要求是为了提高效率而使用 Raw SQL 并且仍然可以访问模型方法,那么您真正需要的是一个库来映射 SQL 的哪些字段是哪些模型的列。

那个图书馆是,Unjoinify

于 2011-07-06T10:53:24.700 回答