今の会社で働き始める前、djangoで管理コマンドを作れることをぼくは知らなかった。
今は、普通にdjangoで作られたアプリケーションを触るし、普通に管理コマンドが作れることは知ってるし、普通に作る。
だけど、入社する前にdjangoのチュートリアルをやってただけだと、全然知らなかった。
多分、ぼくと同じような人は、結構世の中にいるような気がするので、簡単に紹介しよう。
ドキュメントは、ここをみると良いと思う。
カスタム django-admin コマンドの実装 | Django documentation | Django
ドキュメントを読んだた書いてあるけど、
myproject/myapp/management/commands/my_custom_command.py
みたいな場所に作る。なぜ、こんなに階層が深いのかなぞだと思ってる。
こんなファイルが、 my_custom_command.py
だとする。
from django.core.management.base import BaseCommand class Command(BaseCommand): def handle(self, *args, **options): print('hello command')
これで、myappがINSTALLED_APPに入っていたら、my_custom_commndが使えるようになる。
$ python manage.py my_custom_commnd hello command
パラメータとかも渡せる。詳しくはドキュメントを読むと良さそう。