在 django-rest 框架中使用原始 SQL?

2024-03-21

我使用 Django 1.8 和带有表和物化视图的 Postgres 9.4 后端。

我有一个 80GB 的表,名为spending包含支出项目,每个项目都有一个组织代码和一个区域代码:

class Prescription(models.Model):
  region = models.ForeignKey(Region)
  organisation = models.ForeignKey(Organisation)
  month = models.DateField()
  amount = models.FloatField()

我也有一个物化视图spending_by_region,从生成spending table:

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,是否可以运行与上面相同的查询?

I found 这个例子 https://stackoverflow.com/a/26016364/194000,但它仍然与 Model 字段相关,而不是纯粹的原始 SQL。


Django-Rest-Framework 在 Django 应用程序的顶部工作,您可以为您想要的模型设置自定义管理器并执行原始查询,或者简单地使用.raw()来自 Django ORM 的方法。它与任何其他 Django 应用程序一样,但您可以获得视图和序列化器来响应 JSON 对象。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 django-rest 框架中使用原始 SQL? 的相关文章

随机推荐

  • Maven 多项目 Cobertura 在 mvn 站点构建期间报告问题

    我们有一个多项目 我们正在尝试运行 Cobertura 测试覆盖率报告 作为我们 mvn 站点构建的一部分 我可以让 Cobertura 在子项目上运行 但它错误地报告 0 覆盖率 即使报告仍然突出显示单元测试所命中的代码行 我们使用的是
  • CMD 全屏 Visual Studio

    我不小心将命令 shell 设为全屏 我设法将其恢复到原始状态 但现在当我运行 Visual Studio 时 屏幕闪烁黑色 我认为这是全屏命令 shell 启动 有人可以帮忙吗 如果再有一位同事问我是否感染了病毒 我就会去办公桌前 Tha
  • 像 Groupon 这样的网站如何根据其进行交易的城市来进行地理定位?

    假设您从加利福尼亚州阿古拉山 Agoura Hills 的入口点访问 Groupon Groupon 将如何将该城镇引用到最近有优惠的城市 例如洛杉矶 并选择该城市作为最近的城市 它是否从该位置获取纬度 经度并计算与所有可用城市的距离 选择
  • iOS 5 上的 jQuery 事件

    我在 jQuery 1 6 4 iOS 5 和 touchstart touchend 事件的注册方面遇到问题 显然 如标题中所述 采取以下代码
  • 如何判断拼图是否完成?

    我正在准备一款像拼图这样的小游戏 为此我在布局中使用了 9 个图像视图和 9 个不同的图像 在启动时将图像设置为 imageview 这些是实际图像 随机播放后用户将滑动图像以完成拼图 我想检查修改后的图像与实际图像的 天气是否相等 如果它
  • 在 WinForms 中更新 BindingSource 不会更新数据源集合

    我想在中显示自定义集合DataGridView在 Windows 窗体应用程序中 这个自定义集合实现了ICollection and IEnumerable 我已经设置了一个BindingSource 使用集合作为 DataSource 属
  • 启动时将 par 重置为默认值

    通常 当我制作自己的绘图函数时 我会制作一个构造 op lt par mypar myvalue on exit par op 这是恢复的标准方法par到之前的值 想象一下 您一直在运行一些确实更改了某些参数的函数 并且您需要在 R 中启动
  • Ruby on Rails:没有视图的操作

    我有一个我认为非常简单的问题 我有 PhP 背景 并且过去一直这样做 所以我可能以错误的方式看待这个问题 我正在尝试在 RoR 中创建一个 ajax 处理程序 当用户单击按钮时 javascript 会触发 POST 并使用 jQuery
  • 编写 django-piston 客户端的正确方法是什么?

    我已经阅读了很多关于 django piston 的文章 并使用它为我正在开发的应用程序制作 API 但我对世界的客户端很着迷 我已经编写了处理程序和 uri 映射 并且可以随心所欲地返回 JSON 或 XML 我陷入困境的是现在该怎么办
  • cygwin下无法访问jarfile

    我知道这里有很多 无法访问 jarfile 问题 但我确实觉得这足以保证它自己的线程 我正在编写一个演练 该演练的一部分涉及安装 Cygwin 并运行 jar 文件 问题是这个 jar 文件需要从多个目录调用 而不是让我的读者每次需要运行它
  • 为什么 MATLAB 中允许使用多个连续的加号语法?

    有谁知道为什么这在 MATLAB 中有效 gt gt 1 2 ans 3 来自 C Python Java 等语言的编码 我发现这根本就行得通 这是最违反直觉的 想必解析器有一些我不明白的重要内容 有一个区别plus https mathw
  • python 中的前导零[重复]

    这个问题在这里已经有答案了 Python 似乎能够接受除 08 或 09 之外的任何数字的前导零 例如 a 04 在解释器中工作但是 a 08 returns SyntaxError invalid token 我在 OSX 上使用 pyt
  • 类常量的 PHP 表达式

    我试图找出为什么我会遇到此代码的异常 class Test const test Two rows 我在包含 const 的行上遇到异常 解析错误 语法错误 意外的 期望 或 在 home BZUMUL prog php 第 X 行 我本来
  • Java 客户端/服务器套接字

    我从 java 套接字开始 并且有奇怪的 缺乏 输出 这是我的套接字方法的来源 客户端源码 public void loginToServer String host String usnm try Socket testClient ne
  • Indy 可以运行 Javascript 吗?

    有一种名为 AnyChart 的软件产品 非常适合在网页中嵌入基于 Flashed 的图表 AnyCharts 还可以导出为 PNG 文件格式 这是一个例子
  • 如何使用 sublime 在终端上运行 ruby

    我什至不确定这个问题是否正确 我正在以下链接上编写 ruby 教程 www youtube com watch v Dji9ALCgfpM 他在sublime上编写代码 并在终端上显示运行的代码 我曾经在 Integrated ruby i
  • 带选择标签的 dataTables 列过滤插件

    我正在使用数据表 v1 92 以及列过滤插件 v1 5 0 问题 我需要为单个列过滤创建下拉列表 其标记将是
  • 如何上传图片并将其保存到数据库中? [复制]

    这个问题在这里已经有答案了 我必须使用 JavaScript 创建一个表单 用户将上传一个 JPG 文件并与其他信息 例如姓名 电子邮件等 一起提交 当用户单击 提交 时 表单中的所有信息都将加载到值对象中 对于图像文件我将其设置为byte
  • 在 JavaFX 中显示字符串/标签

    我需要帮助弄清楚如何在程序中显示文本 以便它可以在我创建的多边形形状的中间显示 停止 我想做的是创建一个停车标志 我已经负责创建和显示该停止标志 所以现在我只需要在 t 中显示 停止 package application public c
  • 在 django-rest 框架中使用原始 SQL?

    我使用 Django 1 8 和带有表和物化视图的 Postgres 9 4 后端 我有一个 80GB 的表 名为spending包含支出项目 每个项目都有一个组织代码和一个区域代码 class Prescription models Mo