python - Django 自定义命令不适用于参数

标签 python django django-manage.py django-commands

我试图在 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/

相关文章:

python - 我无法打开manage.py

python - 为什么 HTTPS 请求会产生 SSL CERTIFICATE_VERIFY_FAILED 错误?

python - 当批量大小=1时批量归一化

Django celery 给了我一个 (13, 'Permission Denied' )

django - 如何以时区感知方式在 Django 表单中使用 DateField?

python - Pycharm打不开manage.py任务

python - 如何从gekko中获取 'infeasibilities.txt'

Python:保存绘图而不是在 GUI 中打开它

javascript - 通过单击 jQuery 中的 <li> 提交表单

django - 是否可以在 django 管理命令中创建子解析器?