【Django】Custom Command と ArgumentParserの使い方メモ
DjangoでCustom commandの作り方とその時使うArgumentParserの使い方のざっくりメモ
参考)
カスタム django-admin コマンドの実装 | Django documentation | Django
ArgumentParserの使い方を簡単にまとめた - Qiita
app_dir/management/commands/以下にファイルを配置する。
from django.core.management.base import BaseCommand, CommandError # BaseCommandを継承したCommandクラスを定義する class Command(BaseCommand): help = '-hでヘルプ表示させるときに表示される部分。コマンドの概要などを記入' def add_arguments(self, parser): #コマンド引数の定義 # int型の必須引数の定義 parser.add_argument('id', type=int, help='なんかidを指定してください') # str型のオプション引数の定義。nargs='*'指定で、--option aa bb ccという感じに複数指定できる。 # nargs='+'とすると、引数は1つ以上指定しないとエラーになる。 parser.add_argument('-o', '--option', type=str, nargs='*', help='なんかオプションを指定してください') def handle(self, *args, **options): # コマンド処理を定義する #options[引数名]で引数を取得できる。 self.stdout.write(self.style.SUCCESS('id = "%s"' % options['id'])) # nargsを指定した引数はコレクションで入っている。 for option in options['option']: self.stdout.write(self.style.SUCCESS('option = "%s"' % option))