Files
tecvico-website/apps/core/management/commands/ensure_superuser.py
T
2026-06-21 17:54:19 +03:30

33 lines
1.1 KiB
Python

import os
from django.contrib.auth import get_user_model
from django.core.management.base import BaseCommand
class Command(BaseCommand):
help = "Create a superuser from environment variables if one does not already exist."
def handle(self, *args, **options):
User = get_user_model()
username = os.environ.get("DJANGO_SUPERUSER_USERNAME", "admin")
email = os.environ.get("DJANGO_SUPERUSER_EMAIL", "admin@tecvico.com")
password = os.environ.get("DJANGO_SUPERUSER_PASSWORD")
if not password:
self.stdout.write(
self.style.WARNING(
"DJANGO_SUPERUSER_PASSWORD is not set — skipping superuser creation."
)
)
return
if User.objects.filter(username=username).exists():
self.stdout.write(
self.style.SUCCESS(f"Superuser '{username}' already exists — skipping.")
)
return
User.objects.create_superuser(username=username, email=email, password=password)
self.stdout.write(self.style.SUCCESS(f"Superuser '{username}' created successfully."))