大家。
我使用 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 给......一个身体部位带来了如此多的痛苦)。