我試圖創建一個類似於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