gpt4 book ai didi

python - 在单元测试代码中调用 Django 命令

转载 作者:太空宇宙 更新时间:2023-11-03 15:12:13 24 4
gpt4 key购买 nike

我正在尝试使用 call_command 从 URL 下载数据,并且想知道如何从代码中调用它。

我在我的代码中声明了如下选项列表:

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')

我如何传递其余参数/args?

最佳答案

只需将它们作为关键字参数传递:

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

关键字参数应反射(reflect)您的自定义管理命令参数的 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.')

关于python - 在单元测试代码中调用 Django 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25113009/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com