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

7 投票
1 回答
7460 浏览
提问于 2025-04-17 06:25

我正在更新一个Django模型对象。在给每个属性设置值后,当我调用 obj.save() 时,出现了 OperationalError: (2006, 'MySQL server has gone away') 的错误。我很想知道这个错误的原因是什么。有什么办法可以让我看到这个查询吗?因为当保存方法因为这个错误失败时,它不会记录查询信息。有没有什么建议?谢谢!

1 个回答

16

你可以试试这个

from django.db import connection
connection.queries

这样做会给你列出所有通过Django执行的查询(包括.save()这个操作)。如果你想获取你的查询,可以这样做:

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

撰写回答