如何查看Django为DELETE
生成的SQL?
对查询集执行SELECT
操作时,您可以执行以下操作:
>>> qs = Entry.objects.filter(date__gt='2010-06-01')
>>> qs.query.as_sql()
('SELECT ...)
但是我不知道如何获取SQL {I} qs.delete()
时会发生什么。
由于Django“emulates the behavior of the SQL constraint ON DELETE CASCADE”在删除对象时看起来更复杂。
(背景:在删除子类模型对象时,尝试调试由外键约束生成的IntegrityError。)
答案 0 :(得分:14)
这很好用:
>>> from django.db import connection
>>> connection.queries[:-10]
认为在将查询添加到connection.queries
之前发生了异常,但它们确实存在。
答案 1 :(得分:2)
您可以尝试运行django-debug-toolbar并查看相应的查询。