26 lines
1.2 KiB
Python
26 lines
1.2 KiB
Python
from django.core.management.base import BaseCommand, CommandParser
|
|
from django.contrib.auth import get_user_model
|
|
|
|
|
|
class Command(BaseCommand):
|
|
help = 'Create Application User'
|
|
|
|
def add_arguments(self, parser: CommandParser) -> None:
|
|
parser.add_argument('--email', type=str, help="User's email")
|
|
parser.add_argument('--name', type=str, help="User's name")
|
|
parser.add_argument('--password', type=str, help="User's password")
|
|
|
|
def handle(self, *args, **options) -> None:
|
|
email: str = options['email']
|
|
name: str = options['name']
|
|
password: str = options['password']
|
|
|
|
User = get_user_model()
|
|
if email and name and password:
|
|
if not User.objects.filter(email=email).exists() and not User.objects.filter(name=name).exists():
|
|
User.objects.create_user(email=email, password=password, name=name)
|
|
self.stdout.write(self.style.SUCCESS('Admin user created successfully.'))
|
|
else:
|
|
self.stdout.write(self.style.WARNING('Admin user already exists.'))
|
|
else:
|
|
self.stdout.write(self.style.ERROR('Please provide --email, --name, and --password arguments.')) |