Sto cercando di creare un comando simile a createsuperuser
che avrà due argomenti (username e password)Django errore di comando personalizzato: gli argomenti non riconosciuti
relativo funzionamento benissimo in Django 1.7 ma non in 1.8. (Sto usando anche python3.4)
Questo è il codice che ho scritto
frontend/gestione/comandi/createmysuperuser.py
from django.core.management.base import BaseCommand, CommandError
from django.contrib.auth.models import User
class Command(BaseCommand):
help = 'Create a super user'
def handle(self, *args, **options):
if len(args) != 2:
raise CommandError('need exactly two arguments for username and password')
username, password = args
u, created = User.objects.get_or_create(username=username)
if created:
u.is_superuser = True
u.is_staff = True
u.set_password(password)
u.save()
else:
raise CommandError("user '%s' already exist" % username)
return "Password changed successfully for user '%s'" % u.username
e quando provo a eseguire questo comando
$ python manage.py createmysuperuser myuser mypassword
ottengo questo errore
ma quando non passo alcun argomento solleva CommandError
che è previsto.
CommandError: need exactly two arguments for username and password
'python manage.py createmysuperuser nome utente la password myuser mypasswd' questo comando dà questo errore ' errore: argomenti non riconosciuti: la password mypasswd' – micheal
I Ho aggiunto il metodo 'add_arguments' proprio come nella tua risposta e questa riga sotto al metodo' handle' 'username, password = opzioni ['username'], opzioni ['password']' sto sbagliando? – micheal
Vedere la risposta aggiornata. Dovresti chiamare il comando come: 'python manage.py createmysuperuser myuser mypasswd'. – catavaran