如何查看Django为DELETE
生成的SQL ?
当做 SELECT
查询集上的操作,你可以这样做:
>>> qs = Entry.objects.filter(date__gt='2010-06-01')
>>> qs.query.as_sql()
('SELECT ...)
但我不知道如何获取 SQL 以了解当我这样做时会发生什么
qs.delete()
.它看起来有点复杂,因为删除对象时 Django “emulates the behavior of the SQL constraint ON DELETE CASCADE ”。
(背景:尝试在删除子类模型对象时调试由外键约束生成的 IntegrityError。)
最佳答案
这工作得很好:
>>> from django.db import connection
>>> connection.queries[:-10]
以为在查询被添加到
connection.queries
之前发生了异常,但它们确实存在。
关于django - 查看 Django 查询集删除的 SQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4557232/