【问题标题】:Can you do SQL queries on the table generated by Django ORM?可以对 Django ORM 生成的表进行 SQL 查询吗?
【发布时间】:2021-12-16 09:58:32
【问题描述】:

我有一个关于使用 Django ORM 以及来自外部 django 环境的 SQL 查询的问题。 即我想对Django管理的一些表(对应于模型的表)进行SQL查询。

您可以安全地在Django ORM 旁边使用SQL 查询吗?基本上绕过Django ORM,但同时使用Django ORM

我猜数据库状态的同步可能有问题?我在文档中找不到任何内容。

【问题讨论】:

  • 任何非操作性查询,例如SELECT 都可以。但是,当不使用 Django 提供的迁移系统时,您会遇到迁移错误。当模型不能完美地反映数据库结构/模式时,依赖于模型的视图将变得不稳定。如果你看这个:docs.djangoproject.com/en/3.2/topics/db/sql。你可以看到 Django 对 Raw SQL SELECT 查询的使用。
  • 迁移和数据库结构/模式将由 Django 专门处理。如果是这样 SELECT UPDATE DELETE 会好吗?基本上,我们没有足够的时间/没有人来完全重写 node.js 中的项目,但同时没有足够的人来完成项目中的功能。
  • 我正在尝试找到一种方法来重用来自 django 的用户身份验证的模型和迁移,以免重写那么多,只需在 django 表上使用 QueryBuilder,并将 REST API 委托给 node.js 团队目前可用。

标签: python sql django transactions django-orm


【解决方案1】:

我觉得 django 文档中有足够的信息,只是通过它。仅当您修改数据库时,数据库状态才会改变,django 通过保存模型来实现,就像手动查询一样。使用选择查询不会影响您的数据库。

Django docs on almost raw queries

Django docs on very raw queries

【讨论】:

  • 请阅读How to Answer。这里没有错误,但它读起来像“duh,RTFM,但是没关系”。更好的答案是“是的,因为 X 和 Y 没关系,这里有一些参考资料来支持我的回答”。翻转它以专注于您的答案。
猜你喜欢
  • 1970-01-01
  • 2018-05-21
  • 2021-07-29
  • 1970-01-01
  • 2017-06-26
  • 2011-06-13
  • 2016-10-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多