スポンサーリンク

【Django】カスタムコマンドを作って実行する(実行時の引数を追加)

こちらこちらこちらの記事を参考にする

カスタムコマンドは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の管理コマンドではなく引数を渡したいだけならこちらの記事が参考になりそう

コメント

タイトルとURLをコピーしました