Spaces:
Sleeping
Sleeping
import os | |
from django.core.management.base import BaseCommand | |
from django.contrib.auth import get_user_model | |
User = get_user_model() | |
class Command(BaseCommand): | |
help = 'Creates or updates an admin user from environment variables.' | |
def handle(self, *args, **options): | |
username = os.environ.get('DJANGO_SUPERUSER_USERNAME') | |
email = os.environ.get('DJANGO_SUPERUSER_EMAIL') | |
password = os.environ.get('DJANGO_SUPERUSER_PASSWORD') | |
if not all([username, email, password]): | |
self.stdout.write(self.style.ERROR('Missing superuser environment variables. Skipping superuser creation/update.')) | |
return | |
if User.objects.filter(username=username).exists(): | |
self.stdout.write(f'Admin user "{username}" already exists. Ensuring password and email are up to date.') | |
user = User.objects.get(username=username) | |
user.set_password(password) | |
user.email = email | |
user.save() | |
self.stdout.write(self.style.SUCCESS(f'Admin user "{username}" updated successfully.')) | |
else: | |
self.stdout.write(f'Creating admin user "{username}"...') | |
User.objects.create_superuser(username=username, email=email, password=password) | |
self.stdout.write(self.style.SUCCESS(f'Admin user "{username}" created successfully.')) |