mirror of https://github.com/doccano/doccano.git
pythonannotation-tooldatasetsactive-learningtext-annotationdatasetnatural-language-processingdata-labelingmachine-learning
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
35 lines
1.2 KiB
35 lines
1.2 KiB
from django.contrib.auth.management.commands import createsuperuser
|
|
from django.core.management import CommandError
|
|
from django.db import IntegrityError
|
|
|
|
|
|
class Command(createsuperuser.Command):
|
|
help = 'Non-interactively create an admin user'
|
|
|
|
def add_arguments(self, parser):
|
|
super().add_arguments(parser)
|
|
parser.add_argument('--password', default=None,
|
|
help='The password for the admin.')
|
|
|
|
def handle(self, *args, **options):
|
|
password = options.get('password')
|
|
username = options.get('username')
|
|
|
|
if password and not username:
|
|
raise CommandError('--username is required if specifying --password')
|
|
|
|
try:
|
|
super().handle(*args, **options)
|
|
except Exception as err:
|
|
if 'is already taken' in str(err):
|
|
self.stderr.write(f'User {username} already exists.')
|
|
else:
|
|
raise
|
|
|
|
if password:
|
|
database = options.get('database')
|
|
db = self.UserModel._default_manager.db_manager(database)
|
|
user = db.get(username=username)
|
|
user.set_password(password)
|
|
self.stderr.write(f'Setting password for User {username}.')
|
|
user.save()
|