python django 创建自己的命令并添加列表作为参数
python django create own command and add list as parameter
我想用py manage.py own_command.
我得到了以下代码:
from django.core.management.base import BaseCommand
class Command(BaseCommand):
help = 'create user'
def add_arguments(self, parser):
parser.add_argument('--username', type=str, help='set username')
parser.add_argument('--password', type=str, help='set password')
parser.add_argument('--email', type=str, help='set password')
parser.add_argument('--group', type=list, default=[], action='append', help='set group(s) like ["basic", "advanced"]')
parser.add_argument('--permission', type=list, default=[], action='append', help='set permission(s) like ["delete", "write"]')
>py manage.py create_app_user --username dustin --password hdf --email "" --group ["admin", "basic"
]
创造
usage: manage.py create_app_user [-h] [--username USERNAME]
[--password PASSWORD] [--email EMAIL]
[--group GROUP] [--permission PERMISSION]
[--version] [-v {0,1,2,3}]
[--settings SETTINGS]
[--pythonpath PYTHONPATH] [--traceback]
[--no-color]
manage.py create_app_user: error: unrecognized arguments: basic
]
我找到了 django <= 1.7 但不是 >=2.1 的解决方案
您只需指定 nargs='*'
允许 0 个或多个值,或 nargs='+'
允许 1 个或多个值,例如:
parser.add_argument(
'--group',
nargs='*',
help='set group(s) like "basic", "advanced"',
)
此外,您需要调用不带方括号或逗号的命令:
py manage.py create_app_user --username dustin --password hdf --email "" --group "admin" "basic"
我想用py manage.py own_command.
我得到了以下代码:
from django.core.management.base import BaseCommand
class Command(BaseCommand):
help = 'create user'
def add_arguments(self, parser):
parser.add_argument('--username', type=str, help='set username')
parser.add_argument('--password', type=str, help='set password')
parser.add_argument('--email', type=str, help='set password')
parser.add_argument('--group', type=list, default=[], action='append', help='set group(s) like ["basic", "advanced"]')
parser.add_argument('--permission', type=list, default=[], action='append', help='set permission(s) like ["delete", "write"]')
>py manage.py create_app_user --username dustin --password hdf --email "" --group ["admin", "basic"
]
创造
usage: manage.py create_app_user [-h] [--username USERNAME] [--password PASSWORD] [--email EMAIL] [--group GROUP] [--permission PERMISSION] [--version] [-v {0,1,2,3}] [--settings SETTINGS] [--pythonpath PYTHONPATH] [--traceback] [--no-color] manage.py create_app_user: error: unrecognized arguments: basic
]
我找到了 django <= 1.7 但不是 >=2.1 的解决方案
您只需指定 nargs='*'
允许 0 个或多个值,或 nargs='+'
允许 1 个或多个值,例如:
parser.add_argument(
'--group',
nargs='*',
help='set group(s) like "basic", "advanced"',
)
此外,您需要调用不带方括号或逗号的命令:
py manage.py create_app_user --username dustin --password hdf --email "" --group "admin" "basic"