我想用必需和可选参数实现导入功能,以这种方式运行它:
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/