カスタムコマンドはDjango1.8から変更され、それまでは
BaseCommand.option_listを拡張して作成したらしいが、
Django1.8からはadd_argumentメソッドをオーバーライドする方法に変更されました
class Command(BaseCommand):
def add_arguments(self, parser):
#parser.add_argument()
help = 'Import pv data from Google Analytics through API'
parser.add_argument(
"--date",
action="store",
dest="date",
default=datetime.now(),
help=u"date"
)
parser.add_argument(
"--stage",
action="store",
dest="stage",
default="development",
help=u"stage"
)
def handle(self, *args, **options):
date = options['date']
stage = options['stage']
Commandクラス内でadd_arguments()を定義する
add_arguments()はオーバーライドしているので別に呼び出す必要はない
handle()の中に処理を書いていく感じ
実行するコマンドは以下ような感じになる
python manage.py ファイル名 –date=2019-02-01 –stage=development
単純にDjangoの管理コマンドではなく引数を渡したいだけならこちらの記事が参考になりそう
コメント