所有人。
我使用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会给…一个身体部位带来很多痛苦(。
如果您的要求是为了提高效率而使用Raw SQL,并且仍然可以访问模型方法,那么您真正需要的是一个库来映射SQL的哪些字段是哪些模型的列。
这个库是,Unjoinify