django shellで実行されるsqlを表示する
QuerySetでちょっと複雑な条件を書いてるときとか、sqlがどうなってるのか確認したい場合がある。
そんなときはdjango-extensionsのshell_plusの--print-sqlオプションを使うと便利。
モデルもpreloadしてくれるのでいちいちimportしなくていい
python manage.py shell_plus --bpython --print-sql
$ python manage.py help shell_plus Usage: manage.py shell_plus [options] Like the 'shell' command but autoloads the models of all installed Django apps. Options: -v VERBOSITY, --verbosity=VERBOSITY Verbosity level; 0=minimal output, 1=normal output, 2=verbose output, 3=very verbose output --settings=SETTINGS The Python path to a settings module, e.g. "myproject.settings.main". If this isn't provided, the DJANGO_SETTINGS_MODULE environment variable will be used. --pythonpath=PYTHONPATH A directory to add to the Python path, e.g. "/home/djangoprojects/myproject". --traceback Raise on exception --plain Tells Django to use plain Python, not BPython nor IPython. --bpython Tells Django to use BPython, not IPython. --ipython Tells Django to use IPython, not BPython. --notebook Tells Django to use IPython Notebook. --use-pythonrc Tells Django to execute PYTHONSTARTUP file (BE CAREFULL WITH THIS!) --print-sql Print SQL queries as they're executed --dont-load=DONT_LOAD Ignore autoloading of some apps/models. Can be used several times. --quiet-load Do not display loaded models messages --version show program's version number and exit -h, --help show this help message and exit
[https://github.com/django-extensions/django-extensions:title=django-extensions/django-extensions
]