You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
27 lines
961 B
Python
27 lines
961 B
Python
import os
|
|
|
|
from django.contrib.auth import get_user_model
|
|
from django.core.management.base import BaseCommand
|
|
|
|
|
|
class Command(BaseCommand):
|
|
help = "Creates a super-user non-interactively if it doesn't exist."
|
|
|
|
def handle(self, *args, **options):
|
|
User = get_user_model()
|
|
|
|
username = os.environ.get("DJANGO_SUPERUSER_USERNAME", "")
|
|
password = os.environ.get("DJANGO_SUPERUSER_PASSWORD", "")
|
|
|
|
if not username or not password:
|
|
self.stdout.write(self.style.WARNING("Superuser data was not set. Skipping."))
|
|
return
|
|
|
|
if not User.objects.filter(username=username).exists():
|
|
User.objects.create_superuser(username=username, password=password)
|
|
self.stdout.write(self.style.SUCCESS("Successfully created superuser."))
|
|
else:
|
|
self.stdout.write(
|
|
self.style.SUCCESS("Superuser with configured username already exists. Skipping.")
|
|
)
|