Django:如何使用其他选项挂钩django命令

时间:2015-04-08 22:19:43

标签: django

Django命令允许通过传递--settings=custom.py

进行可选设置

如何添加--business=b1这样的额外选项,以便为所有现有命令初始化特定于业务的内容,而无需修改所有命令

例如

./manage.py process_orders --business=b1

我可能需要修补补丁BaseCommandhandle_default_options

1 个答案:

答案 0 :(得分:1)

这在文档[1]中得到了很好的解释。以下是文档中的示例,但略微修改为包含业务选项。

from optparse import make_option

class Command(BaseCommand):
    option_list = BaseCommand.option_list + (
        make_option('--business',
            dest='business',
            default=None,
            help='business help text'),
        )

    def handle(self, *args, **options):
        # ...
        if options['business']:
            print 'found'
        # ...

这会将--business选项添加到现有的Django选项中。

[1] https://docs.djangoproject.com/en/1.7/howto/custom-management-commands/