【问题标题】:Django management command with dynamic arguments带有动态参数的 Django 管理命令
【发布时间】:2021-09-21 05:44:34
【问题描述】:

您将如何创建一个 Django 管理命令,该命令的参数根据位置参数是动态的?

例如,带有位置参数option1 的命令dynamic_command 的命名参数:

python manage.py dynamic_command option1

应该不同于带有位置参数option2的命令dynamic_command的命名参数:

python manage.py dynamic_command option2

这对于底层命令句柄相同但参数可能因命令运行的上下文而异的情况很有用。

为了进一步详细说明,您可能希望命令 dynamic_command option1 接受命名参数 --kv1 --kv2

例如

python manage.py dynamic_command option1 --kv1 --kv2

dynamic_command option2 接受命名参数--kv3 --kv4

例如

python manage.py dynamic_command option2 --kv3 --kv4

【问题讨论】:

    标签: python django


    【解决方案1】:

    覆盖add_arguments(self, parser) 方法。 parser 参数是 argparse.ArgumentParser 对象(文档:https://docs.python.org/3/library/argparse.html)。

    您可能正在寻找子命令/子解析器:https://docs.python.org/3/library/argparse.html#sub-commands

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-07-26
    • 1970-01-01
    • 2015-09-06
    • 2020-12-08
    • 1970-01-01
    • 1970-01-01
    • 2014-09-27
    相关资源
    最近更新 更多