Created
August 31, 2025 08:51
-
-
Save ichux/8420d951c53588b20746a9d55952066b to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env python | |
""" | |
Simple script to create a Django superuser. | |
Run this from the project root directory. | |
""" | |
import os | |
import sys | |
import django | |
# Add the current directory to Python path | |
sys.path.insert(0, os.getcwd()) | |
# Set Django settings module and setup | |
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "linklabs.settings") | |
django.setup() | |
from django.contrib.auth import get_user_model | |
from django.db import IntegrityError | |
User = get_user_model() | |
def create_superuser(username, email, password): | |
"""Create a superuser account.""" | |
try: | |
# Check if user already exists | |
try: | |
user = User.objects.get(username=username) | |
if user.is_superuser: | |
print(f"Superuser '{username}' already exists.") | |
return user | |
else: | |
# Promote existing user to superuser | |
user.is_superuser = True | |
user.is_staff = True | |
user.save() | |
print(f"User '{username}' has been promoted to superuser.") | |
return user | |
except User.DoesNotExist: | |
pass | |
# Create new superuser | |
user = User.objects.create_superuser( | |
username=username, | |
email=email, | |
password=password | |
) | |
print(f"Superuser '{username}' created successfully.") | |
return user | |
except IntegrityError as e: | |
print(f"Error creating superuser: {e}") | |
return None | |
except Exception as e: | |
print(f"Unexpected error: {e}") | |
return None | |
if __name__ == "__main__": | |
if len(sys.argv) != 4: | |
print("Usage: python create_superuser_simple.py <username> <email> <password>") | |
sys.exit(1) | |
username = sys.argv[1] | |
email = sys.argv[2] | |
password = sys.argv[3] | |
create_superuser(username, email, password) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment