sql - 获取Django模型在.save()上具有(或将调用)的SQL

标签 sql django django-models

如何获得Django模型的.save()的SQL,即

from django.db import models

class MyM(models.Model):
   text = models.TextField()

如何获得在以下情况下将创建/使用的SQL:
 >>> m = MyM(text="123")
 >>> m.save()
 # What SQL Django just run?

谢谢!

最佳答案

从Django常见问题解答中:

如何查看Django正在运行的原始SQL查询?
确保您的Django DEBUG设置设置为True。然后,只需执行以下操作:

>>> from django.core.db import db  
>>> db.queries  
[{'sql': 'SELECT polls_polls.id,polls_polls.question,polls_polls.pub_date FROM polls_polls',   
'time': '0.002'}]  

仅当DEBUG为True时db.queries才可用。它是按查询执行顺序排列的词典列表。每本词典都有以下内容:sql-原始SQL语句time-语句执行所需的时间(以秒为单位)。
db.queries包括所有SQL语句-INSERT,UPDATE,SELECT等。

关于sql - 获取Django模型在.save()上具有(或将调用)的SQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2381556/

相关文章:

java - Android Room @Delete 带参数

python - django 具有多个数据库和用户外键

sql - postgres 中的删除速度很慢

php - 查找两个数据表和日期表连接的空字段

django - Selenium 测试、LiveServerTestCase、Django 和 NoReverseMatch

python - 如何在生产服务器上禁用 NoReverseMatch 错误电子邮件?

django - 带 django 后端的单页应用程序中应该在哪里集成 strip

django - i18n Django 国际化和数据库对象

python - 撤消或重置Django中伪造的迁移

mysql - 根据多列选择最大值列行