我正在尝试使用argparse创建一个Django管理命令,但是每当我运行它时,它总是不会返回有效的选项,因为此消息来自manage.py:

class Command(BaseCommand):
    def handle(self,*args,**options):
        parser = argparse.ArgumentParser('Parsing arguments')
        parser.add_argument('--max',type=float,store)
        args = parser.parse_args(sys.argv[2:])

将一些参数解析器与管理命令一起使用的正确方法是什么?

Python版本2.x.

解决方法

在Django中,选项在传递给Command之前使用OptParser进行解析.您应该将您的选项添加到BaseCommand.option_list,如下所示:

class Command(BaseCommand):
    help = 'My cool command'
    option_list = BaseCommand.option_list + (
        make_option('--max',action='store',dest='max',type='float',default=0.0,help='Max value'),)

    def handle(self,**options):
        print options['max']

dawei

【声明】:丽水站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。