我试图在 Django 2.0 中使用 args 调用命令。当我传递参数时,它给出以下错误消息:
“类型错误:虚拟命令的未知选项:args。有效选项包括:help、no_color、pythonpath、settings、skip_checks、stderr、stdout、traceback、url、verbosity、version。”
该命令与选项配合使用效果良好。仅当使用 args 调用时才会导致此错误。
我的命令代码:
from django.core.management.base import BaseCommand
class Command(BaseCommand):
help = 'A description of your command'
def add_arguments(self, parser):
parser.add_argument(
'--url', required=False,
type=str,
help='the url to process',
)
def handle(self, *args, **options):
for url in args:
self.stdout.write(url)
这里我调用命令
from django.core.management import call_command
from django.test import TestCase
class DummyTest(TestCase):
def test_dummy_test_case(self):
call_command("dummy", args=['google.com'])
最佳答案
命令参数设置为url
,而不是args
;做:
call_command("dummy", url='google.com')
Django管理命令使用argparse
进行参数解析;浏览doc以获得有关其工作原理的更多想法。
关于python - Django 自定义命令不适用于参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58814068/