我正在尝试使用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')
如何传递其余的参数/参数?
答案 0 :(得分:4)
只需将它们作为关键字参数传递:
call_command('download',
url="http://some-link.com/download/",
username="admin",
password="admin")
关键字参数应反映自定义管理命令参数的dest
值。
flush
命令的示例:
--initial-data
中的 call_command()
命令行参数可以通过传递load_initial_data
keyword argument来设置:
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.')