我正在尝试使用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']