Zwei Argumente im benutzerdefinierten Befehl django-admin

8

Ich habe einen funktionierenden django-admin-Befehl, mit dem ich meine Datenbank mit neuen Informationen füllen kann. Wieder funktioniert alles.

Allerdings habe ich jetzt meine Modelle geändert und funktioniere etwas, um zwei Argumente als Tupel zu akzeptieren - Vorname und Nachname, anstatt nur "name".

Vorheriger Code unten - funktioniert. Führen Sie mit "manage.py xyz name1 name2 name3 ... usw. (Leerzeichen zwischen den verschiedenen Argumenten)

aus %Vor%

Ist es möglich, zwei Argumente vom benutzerdefinierten Befehl django-admin zu übergeben, wobei das zweite Argument optional ist - & gt; d.h. (erstes, letztes = keines)?

Pseudocode unterhalb von dem, was ich gerne ausführen würde ... "manage.py xyz (first1, last1) (first2, last2) & lt; - oder eine Variation davon

Ich habe bereits die Funktion DEF geändert, um dies als eigenständige Funktion zu akzeptieren. Ich bin mir nur nicht sicher, wie ich den Befehl django-admin jetzt zum Laufen bringen kann.

    
snakesNbronies 13.05.2012, 02:25
quelle

1 Antwort

13

Das ist durchaus möglich, obwohl django.core.management kein spezifisches Werkzeug dafür bietet. Sie können die über das Schlüsselwort args übergebenen Argumente analysieren. Sie müssen dafür eine Syntax entwickeln (die Syntax im help -Attribut des Befehls zu definieren wäre wahrscheinlich eine gute Idee).

Angenommen, die Syntax lautet firstname.lastname oder nur firstname für den Fall, dass der letzte Name weggelassen wird, können Sie Folgendes tun:

%Vor%

Und Benutzer des Befehls können Argumente wie folgt übergeben:

%Vor%     
modocache 13.05.2012, 02:49
quelle