@kyanny's blog

My thoughts, my life. Views/opinions are my own.

Django: createsuperuser が入力待ちで止まらないようにする

--no-input オプションを使えばよい。

❯ python manage.py createsuperuser --username kyanny --email kyanny@gmail.com --no-input

ただしパスワードがわからないので、そのままではログインできない。パスワードを変更するには changepassword を使う。

❯ python manage.py changepassword kyanny

普通にインタラクティブシェルから管理ユーザーを作成する場合は不要。

ではどういう時に使えるかというと、管理ユーザー作成を含む種々のセットアップ手順をスクリプト化していて、バックグランドで実行させておくような場合。 createsuperuser の箇所で止まってしまうと時間の無駄なので、とりあえず完走させておいて、あとでパスワード変更する、という使い方が考えられる。

(しかし、だったら管理ユーザー作成手順そのものをあとで行うことにすればよいので、やはりあんまり有用なテクニックとはいえない)