¿Cómo paso múltiples argumentos con valores, desde la línea de comando, a un comando de administración de django personalizado?
def add_arguments(self, parser): parser.add_argument('str_arg1', nargs='+') parser.add_argument('int_arg2', nargs='+', type=int)Cuando corro:
./manage.py my_command str_arg1 value int_arg2 1 --settings=config.settings.local Obtengo los siguientes valores en options :
options['str_arg1'] = ['str_arg1', 'value', 'int_arg2'] options['int_arg2'] = [1]Intenté buscar en la documentación y en línea una solución y múltiples formas de pasar los argumentos sin suerte. La versión de Django es 1.10.
Gracias
La forma en que ha definido los argumentos significa que son argumentos posicionales . No hay una forma sensata de tener múltiples argumentos posicionales que consuman una cantidad desconocida de valores.
Modifique su analizador para especificarlos como opciones en su lugar:
parser.add_argument('--str-arg1', nargs='+') parser.add_argument('--int-arg2', nargs='+', type=int)Y modifica la llamada:
./manage.py my_command --str-arg1 value --int-arg2 1