修改 Django 命令参数
Modifying Django Command argument
假设我有这样的命令:
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
现在我想要一个几乎相同的 class 但我不想再需要参数 '--foo' 了。如果我 super
继承方法中的漏洞 add_arguments
或其他东西,你能以某种方式修改那个解析器吗?
您可以使用 class 属性:
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
。
假设我有这样的命令:
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
现在我想要一个几乎相同的 class 但我不想再需要参数 '--foo' 了。如果我 super
继承方法中的漏洞 add_arguments
或其他东西,你能以某种方式修改那个解析器吗?
您可以使用 class 属性:
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
。