【发布时间】:2015-08-22 18:40:34
【问题描述】:
我正在使用带有 Postgres 9.4 后端的 Django 1.8 和表格和物化视图。
我有一个名为 spending 的 80GB 表,其中包含支出项目,每个项目都有一个组织代码和一个地区代码:
class Prescription(models.Model):
region = models.ForeignKey(Region)
organisation = models.ForeignKey(Organisation)
month = models.DateField()
amount = models.FloatField()
我还有一个从spending 表生成的spending_by_region 的物化视图:
CREATE MATERIALIZED VIEW spending_by_region AS
SELECT region, month, SUM(amount) AS amount
FROM spending
GROUP BY month, region_id
(我使用物化视图是因为数据非常大而且是静态的,实际上是一个数据仓库。)
我的一些 Django 视图使用物化视图,例如我对每个地区的看法。在这些情况下,我使用原始 SQL 来运行 select * from spending_by_region where region=123,因为当然 Django 的 ORM 不知道物化视图。
现在我想开始为我的应用程序实现一个 API。我听说过关于 django-rest-framework 的好消息,但是是否可以在序列化之前使用原始 SQL 查询来获取数据?
例如,如果我想要一个名为 /spending_by_region/123 的 API 方法,是否可以运行与上述相同的查询?
我找到了this example,但它仍然与模型字段相关联,而不是纯粹的原始 SQL。
【问题讨论】:
标签: django django-rest-framework