gpt4 book ai didi

python - django 管理命令中 default=False 的用途是什么

转载 作者:太空宇宙 更新时间:2023-11-04 09:53:25 26 4
gpt4 key购买 nike

我正在尝试在 Django 中编写管理命令。根据documentation默认设置为 False。我假设默认值是正在传递的参数的默认值。 Make django custom management command argument "Not Required"

声明 deafult=False 有什么好处?

class Command(BaseCommand):
help = "helps in doing stuff"

def add_arguments(self, parser):
parser.add_argument(
'name', type=str, default=False,
help="The name of the folder to be created")

def handle(self, *args, **options):
pass

最佳答案

first example在您链接到的文档中是一个可选的命名参数 --delete。设置 action='store_true' 意味着如果您在命令中包含 --delete,则 args.delete 将设置为 True,如果 --delete 未包含在命令中,则它将 default=False

在这种情况下,实际上不需要设置 default=False,因为这是 action='store_true' 的行为。显式设置 default=False 的优点是行为很清楚,无需查找 argparse 文档。

    parser.add_argument(
'--delete',
action='store_true',
dest='delete',
default=False,
help='Delete poll instead of closing it',
)

您的示例没有意义,因为 name 不是可选参数。

parser.add_argument(
'name', type=str, default=False,
help="The name of the folder to be created")

如果您尝试这个示例,您将收到类似too few arguments 的错误。

parser.add_argument(
'name', type=str, default=False
help="The name of the folder to be created")

如果您希望他的 name 参数是可选的,您需要设置 nargs='?'。在这种情况下,将使用您的默认值。如果你没有设置它,那么它将默认为 None

parser.add_argument(
'name', type=str, nargs='?', default=False,
help="The name of the folder to be created")

请注意,如果您的参数是“要创建的文件夹的名称”,则将默认值设置为 False 可能没有意义。似乎要么需要参数(在这种情况下不需要默认值),要么默认值应该是一个字符串,例如/path/to/folder/.

关于python - django 管理命令中 default=False 的用途是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46908171/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com