我试图创建一个类似于createsuperuser
这将需要两个参数(用户名和密码)Django的自定义命令错误:无法识别参数
其在Django 1.7工作正常,但不是在1.8的命令。 (我还使用python3.4)
这是我写的
MYAPP /管理/命令/ 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
的代码,当我尝试运行此命令
$ python manage.py createmysuperuser myuser mypassword
我得到这个错误
usage: manage.py createmysuperuser [-h] [--version] [-v {0,1,2,3}]
[--settings SETTINGS]
[--pythonpath PYTHONPATH] [--traceback]
[--no-color]
manage.py createmysuperuser: error: unrecognized arguments: myuser mypassword
但是当我没有通过任何参数时,它会引发CommandError
这是预期的。
CommandError: need exactly two arguments for username and password
'蟒蛇manage.py createmysuperuser用户名密码为myuser mypasswd' 这个命令给出了这样的错误 '错误:无法识别的参数:密码mypasswd' – micheal
我已经添加了'add_arguments'方法,就像在你的答案中一样,并且在这个下面的行中输入'012''' ''username,password = options ['username'],options ['password']' – micheal
查看最新的答案。你应该像这样调用命令:'python manage.py createmysuperuser myuser mypasswd'。 – catavaran