我想用必需和可选参数实现导入功能,以这种方式运行它:

python manage.py import --mode archive

其中需要--mode,也需要archive

我正在使用argparse库。
class Command(BaseCommand):
    help = 'Import'

    def add_arguments(self, parser):
        parser.add_argument('--mode',
            required=True,
        )
        parser.add_argument('archive',
            required=True,
            default=False,
            help='Make import archive events'
        )

但是我收到错误:
TypeError: 'required' is an invalid argument for positionals

最佳答案

您创建了位置参数(名称前面没有--选项)。位置参数始终是必需的。您不能将required=True用于此类选项,只需删除required即可。也删除default;必需的参数不能具有默认值(无论如何也不会使用):

parser.add_argument('archive',
    help='Make import archive events'
)

如果要让archive成为命令行开关,请改用--archive

关于python - 'required'是python命令中positionals的无效参数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45078474/

10-13 09:52