修改Django Command参数

时间:2017-02-10 15:41:31

标签: python django django-commands

假设我有一个命令:

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 个答案:

答案 0 :(得分: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