Django 自定义命令不适用于 args

Django custom command not working with args

我正在尝试在 Django 2.0 中使用 args 调用命令。当我传递参数时,它给出了这个错误信息:

"TypeError: Unknown option(s) for dummy command: args. Valid options are: 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 以获得更多有关其工作原理的想法。