2017-02-10 40 views
0

可以说我有像这样的命令:修改Django的命令参数

class Command(object): 
    help = 'roll over and die' 

    def add_arguments(self, parser): 
     parser.add_argument(
      '--foo', 
      help='see command help', 
      choices=['die','die_painfully'], 
      required=True 
     ) 
     parser.add_agument(...)   x 9001 

,现在我想有一个几乎相同的类,但我不想争论“--foo”到不再需要。如果我在继承方法中有super的孔add_arguments或其他什么?

回答

1

你可以使用一个类属性:

class Command(object): 
    help = 'roll over and die' 
    foo_required = True 

    def add_arguments(self, parser): 
     parser.add_argument(
      '--foo', 
      # ... 
      required=self.foo_required 
     ) 

,然后在继承Command

class Command(foo.bar.Command): 
    foo_required = False 

,你就不必重写add_arguments