Deux arguments dans django-admin commande personnalisée
J'ai un de travail django-admin personnalisé de commande que j'utilise pour remplir ma base de données avec de nouvelles informations. Encore une fois, tout fonctionne.
Cependant, j'ai changé mes modèles et de la fonction légèrement à accepter deux arguments comme un n-uplet - prénom et nom de famille, au lieu de "nom".
Précédent code ci-dessous. Exécuter à l'aide de "manage.py xyz nom1 nom2 nom3... etc. (l'espace entre les différents args)
from django.core.management.base import BaseCommand, CommandError
from detail.models import ABC
from detail.parser import DEF
class Command(BaseCommand):
args = '<name...>'
help = 'Populates the ABC class database'
def handle(self, *args, **options):
for symbol in args:
try:
info = DEF(name)
Est-il possible de passer sur deux arguments de django-admin commande personnalisée où le deuxième argument est facultatif --> c'est à dire (prénom, nom=None)?
Pseudo-code ci-dessous de ce que je voudrais à l'aide... "manage.py xyz (first1, last1) (premier2, last2) < - ou une variante de cette
J'ai déjà changé la fonction DEF à accepter cette façon appropriée en tant que fonction autonome. Je ne suis pas sûr de savoir comment je peux obtenir le django-admin de commande de travail maintenant.
OriginalL'auteur snakesNbronies | 2012-05-13
Vous devez vous connecter pour publier un commentaire.
Il est tout à fait possible, bien que
django.core.management
ne fournissent pas un outil spécifique pour le faire. Vous pouvez analyser les arguments transmis via leargs
argument mot-clé. Vous aurez à venir avec une syntaxe pour le faire (la définition de la syntaxe dans lahelp
attribut de la commande serait probablement une bonne idée).En supposant que la syntaxe est
firstname.lastname
, ou tout simplementfirstname
dans le cas où le nom est omis, vous pouvez faire quelque chose comme:Et les utilisateurs de la commande peut passer des arguments comme:
ce qu'il va faire ?
Cette réponse est obsolète, django a maintenant un
add_arguments
méthode intégrée, qui a été ajoutée dans v1.8. Voir: docs.djangoproject.com/en/2.0/howto/custom-management-commandsOriginalL'auteur modocache