20 lines
875 B
Python
20 lines
875 B
Python
from django.core.management.base import BaseCommand
|
|
from django.contrib.auth import get_user_model
|
|
import os
|
|
|
|
class Command(BaseCommand):
|
|
help = 'Ensures an admin user exists (idempotent)'
|
|
|
|
def handle(self, *args, **options):
|
|
User = get_user_model()
|
|
username = os.environ.get('ADMIN_USER', 'admin')
|
|
email = os.environ.get('ADMIN_EMAIL', 'admin@example.com')
|
|
password = os.environ.get('ADMIN_PASS', 'admin')
|
|
|
|
if not User.objects.filter(username=username).exists():
|
|
self.stdout.write(f"Creating superuser '{username}'...")
|
|
User.objects.create_superuser(username, email, password)
|
|
self.stdout.write(self.style.SUCCESS(f"Superuser '{username}' created successfully."))
|
|
else:
|
|
self.stdout.write(self.style.SUCCESS(f"Superuser '{username}' already exists. Skipping creation."))
|