如何在 django 中获取 .save() 的查询?

Posted

技术标签:

【中文标题】如何在 django 中获取 .save() 的查询?【英文标题】:How can i get query for .save() in django? 【发布时间】:2011-12-30 04:27:13 【问题描述】:

我正在更新一个 django 模型对象。在我调用obj.save() 时为每个属性设置值后,它给了我OperationalError: (2006, 'mysql server has gone away')。我很想知道是什么导致了以下错误。我怎样才能得到查询?当保存方法由于上述错误而失败时,它不会记录查询。 有什么建议??提前致谢。

【问题讨论】:

django toolbar 【参考方案1】:

你可以试试

from django.db import connection
connection.queries

它将为您提供通过 Django 执行的所有查询的列表(包括 .save())。要获得您的查询,您可以这样做,

from django.db import connection, OperationalError
try:
    modelObj.save()
except OperationalError:
    print(connection.queries[-1])

【讨论】:

不要忘记将 settings.DEBUG 设置为 True 以查看查询

以上是关于如何在 django 中获取 .save() 的查询?的主要内容,如果未能解决你的问题,请参考以下文章

数据的查,改,删django orm中如何创建表关系django请求生命周期流程图路由层无名有名分组反向解析

Django使用save新增一条数据之后如何获取自增id

Django,调用 super() 后如何在 save() 方法中更新模型?

Django---进阶2

Django---进阶2

在 django 模型自定义 save() 方法中,你应该如何识别一个新对象?