BAMU_Hiring / mysite / hiring / management / commands / custom_csu.py
custom_csu.py
Raw
from django.core.management.base import BaseCommand
from django.contrib.auth.models import User
from django.contrib.auth.password_validation import validate_password
from django.core.validators import validate_email

class Command(BaseCommand):
    help = "Create superuser directly"

    def add_arguments(self, parser):
        parser.add_argument('--username', required=True)
        parser.add_argument('--email', default=None)
        parser.add_argument('--password', required=True)

    def handle(self, *args, **options):
        try:
            username = options['username']
            User.username_validator(username)
            email = options['email']
            if email:
                validate_email(email)
            password = options['password']
            validate_password(password)
            User.objects.create_superuser(username=username, email=email, password=password)
        except Exception as err:
            self.stdout.write("")
            if hasattr(err, '__iter__'):
                for e in err:
                    self.stdout.write(f"{err.__class__.__name__}: {str(e)}")
            else:
                self.stdout.write(f"{err.__class__.__name__}: {str(err)}")
            self.stdout.write("")