我正在编写自定义django管理命令。
class Command(BaseCommand):
option_list = BaseCommand.option_list + (
make_option(
"-i",
"--user_id",
dest="user_id",
),
make_option(
"-f",
"--fields",
dest="fields"
),
)
我需要fields
由多个元素组成。我知道nargs
,但我需要指定一个确切的数字。我的fields
可以从1到5个元素不等。有没有合适的方法来处理这样的args列表?
答案 0 :(得分:2)
无法自动执行此操作。但您可以使用不同的操作类型:
option_list = BaseCommand.option_list + (
make_option(
"-i",
"--user_id",
dest="user_id",
),
make_option(
"-f",
"--fields",
dest="fields",
action="append",
),
)
现在在命令行中提供多个字段名称,如下所示:
./my_program -u my_user -f field1 -f field2 -f field3
然后 options['fields']
将包含字段名称列表或无。您可以检查这个(以及列表超过五个元素的事实)并打印错误消息。