Wie übergebe ich mehrere Argumente mit Werten von der Befehlszeile an einen benutzerdefinierten django-Verwaltungsbefehl?Mehrere Argumente mit Werten für benutzerdefinierten Verwaltungsbefehl
def add_arguments(self, parser):
parser.add_argument('str_arg1', nargs='+')
parser.add_argument('int_arg2', nargs='+', type=int)
Wenn ich laufe:
./manage.py my_command str_arg1 value int_arg2 1 --settings=config.settings.local
ich die folgenden Werte in options
erhalten:
options['str_arg1'] = ['str_arg1', 'value', 'int_arg2']
options['int_arg2'] = [1]
in Dokumentation versucht die Suche und online für eine Lösung und mehr Möglichkeiten, die Argumente mit geben kein Glück. Djangos Version ist 1.10.
Dank
Vielen Dank, dass der Trick. So einfach. Irgendeine Idee, warum es die Werte in Listen setzen würde? Ich erhalte sie jetzt mit 'options ['str_arg1'] [0]' – Ovidiu
Wenn Sie 'nargs = '+'' verwenden, speichert argparse die Werte immer in der Liste. '+' bedeutet "es kann einen oder mehrere Werte für dieses Argument geben". Wenn Sie wissen, dass Sie nur genau einen Wert konsumieren wollen, können Sie das "nargs = '+" weglassen. – wim