Python 修改Django命令参数

Python 修改Django命令参数,python,django,django-commands,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'], re

假设我有这样一个命令:

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
这个洞
在inhering方法或其他东西中添加了参数,你能修改这个解析器吗?

你可以使用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
        )
然后在继承
命令中

class Command(foo.bar.Command):
    foo_required = False
而且您不必重写
添加参数