Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- """
- Extend createsuperuser command to allow non-interactive creation of a
- superuser with a password.
- Instructions:
- mkdir -p path-to-your-app/management/commands/
- touch path-to-your-app/management/__init__.py
- touch path-to-your-app/management/commands/__init__.py
- and place this file under path-to-your-app/management/commands/
- Example usage:
- manage.py create-superuser \
- --username foo \
- --password foo \
- --email foo@foo.foo
- """
- from django.contrib.auth.management.commands import createsuperuser
- from django.core.management import CommandError
- class Command(createsuperuser.Command):
- help = 'Create a superuser with a password non-interactively'
- def add_arguments(self, parser):
- super(Command, self).add_arguments(parser)
- parser.add_argument(
- '--password', dest='password', default=None,
- help='Specifies the password for the superuser.',
- )
- def handle(self, *args, **options):
- options.setdefault('interactive', False)
- database = options.get('database')
- password = options.get('password')
- username = options.get('username')
- email = options.get('email')
- if not password or not username or not email:
- raise CommandError(
- "--email --username and --password are required options")
- user_data = {
- 'username': username,
- 'password': password,
- 'email': email,
- }
- self.UserModel._default_manager.db_manager(
- database).create_superuser(**user_data)
- if options.get('verbosity', 0) >= 1:
- self.stdout.write("Superuser created successfully.")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement