完全有可能,尽管django.core.management
没有提供特定的工具来这样做。您可以解析通过args
关键字参数传递的参数。您必须为此提供一种语法(help
在命令属性中定义语法可能是个好主意)。
假设语法为firstname.lastname
,或者只是firstname
省略了姓氏,则可以执行以下操作:
def handle(self, *args, **options):
for arg in args:
try:
first_name, last_name = arg.split('.')
except ValueError:
first_name, last_name = arg, None
info = DEF(first_name, last_name)
该命令的用户可以像这样传递参数:
$ python manage.py yourcommand -v=3 john.doe bill patrick.bateman