Djangoでcall_commandのoption指定で迷ったのでメモ
.py
# Similar to the command line
management.call_command('dumpdata', '--natural-foreign')
# Named argument similar to the command line minus the initial dashes and
# with internal dashes replaced by underscores
management.call_command('dumpdata', natural_foreign=True)
# `use_natural_foreign_keys` is the option destination variable
management.call_command('dumpdata', use_natural_foreign_keys=True)
と記述してあるので、
python manage.py flush --noinput
を実行したい場合は、
.py
management.call_command('flush',noinput=True)
で動くと思ったが一向にnoinputが効かなかった。
そこでいろいろ調べると
https://github.com/django/django/blob/master/django/core/management/commands/flush.py#L20
ということらしい。
そこで
.py
management.call_command('flush',interactive=False)
としたら動いた。
ドキュメントに書いてないような……。ソース読めってことなのか……。