Просмотр запросов SQL для удаления набора запросов Django - PullRequest
11 голосов
/ 29 декабря 2010

Как вы видите SQL, сгенерированный Django для DELETE?

При выполнении операции SELECT над набором запросов вы можете сделать следующее:

>>> qs = Entry.objects.filter(date__gt='2010-06-01')
>>> qs.query.as_sql()
('SELECT ...)

Но я не знаю, как получить SQL для того, что происходит, когда я делаю qs.delete().

Это выглядит немного сложнее, поскольку Django " эмулирует поведение ограничения SQL ON DELETE CASCADE " при удалении объектов.

(Справочная информация: попытка отладки IntegrityErrorгенерируется ограничением внешнего ключа при удалении объекта подклассовой модели.)

Ответы [ 2 ]

14 голосов
/ 30 декабря 2010

Это работает достаточно хорошо:

>>> from django.db import connection
>>> connection.queries[:-10]

Думал, что исключения возникли до того, как запросы были добавлены в connection.queries, но они действительно присутствуют.

2 голосов
/ 29 декабря 2010

Вы можете попробовать запустить django-debug-toolbar и посмотреть запросы таким образом.

...