如何使用Django自定义管理命令选项? [英] How does one use Django custom management command option?

查看:138
本文介绍了如何使用Django自定义管理命令选项?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

Django文档通过一个示例告诉我如何添加一个选项到我的django自定义管理命令:

  from optparse导入make_option 

类命令(BaseCommand):
option_list = BaseCommand.option_list +(
make_option(' - delete',
action ='store_true',
dest ='delete',
default = False,
help ='删除投票而不是关闭它),

/ pre>

然后文档停止。如何编写这个类的 handle 方法来检查用户是否提供了一个 - delete 选项?有时候,Django会使简单的事情变得困难: - (

解决方案

你可以这样做:

  from optparse import make_option 

class Command(BaseCommand):
option_list = BaseCommand.option_list +(
make_option(' - del',
action ='store_true',
help ='Delete poll'),
make_option(' - close',
action ='store_true ',
help ='Close poll'),


def handle(self,close,* args,** kwargs):
del_ = kwargs。请注意,Python中的一些关键字是保留的,因此您可以使用 ** kwargs 否则你可以使用正常的参数(就像我用关闭


The Django doc tell me how to add an option to my django custom management command, via an example:

from optparse import make_option

class Command(BaseCommand):
    option_list = BaseCommand.option_list + (
        make_option('--delete',
            action='store_true',
            dest='delete',
            default=False,
            help='Delete poll instead of closing it'),
    )

Then the docs just stop. How would one write the handle method for this class to check whether the user has supplied a --delete option? At times Django makes the easy things difficult :-(

解决方案

You can do it like this:

from optparse import make_option

class Command(BaseCommand):
    option_list = BaseCommand.option_list + (
        make_option('--del',
            action='store_true',
            help='Delete poll'),
        make_option('--close',
            action='store_true',
            help='Close poll'),
    )

    def handle(self, close, *args, **kwargs):
        del_ = kwargs.get('del')

Do note that some keywords in Python are reserved so you can handle those using **kwargs. Otherwise you can use normal arguments (like I did with close)

这篇关于如何使用Django自定义管理命令选项?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆