3

URL からデータをダウンロードするために使用しようとしてcall_commandいますが、コードからそれを呼び出す方法を知りたいと思っていました。

コードで次のようにオプション リストを宣言しました。

option_list = BaseCommand.option_list + (
        make_option('--url', default=None, dest='url', help=_(u'Specifies the full url of the json data to download.')),
        make_option('--username', default=None, dest='username', help=_(u'Login of the person doing the download.')),
        make_option('--password', default=None, dest='password', help=_(u'Password of the person doing the download.')),
        make_option('--file', default=None, dest='file', help=_(u'File name of the json data to download in gzip-compressed-data format')),
    )

コマンドラインから次のように使用します。

./manage.py download --url=http://some-link.com/download/ --username=admin --password=admin

これまでのところ、次のものがあります。

call_command('download')

残りのパラメーター/引数を渡すにはどうすればよいですか?

4

1 に答える 1

4

それらをキーワード引数として渡すだけです:

call_command('download', 
             url="http://some-link.com/download/", 
             username="admin",
             password="admin")

destキーワード引数は、カスタム管理コマンド引数の値を反映する必要があります。


flushコマンドの例:

--initial-dataコマンドライン引数 inは、キーワード引数call_command()を渡すことで設定できます:load_initial_data

call_command('flush', load_initial_data=False)

これは、--initial-dataの引数の宛先であるためです。

parser.add_argument('--no-initial-data', action='store_false',
    dest='load_initial_data', default=True,
    help='Tells Django not to load any initial data after database synchronization.')
于 2014-08-04T06:45:22.920 に答える