from django.core.management.base import BaseCommand from django.contrib.auth.models import User from decouple import config import sys class Command(BaseCommand): help = 'Create admin user from environment variables' def add_arguments(self, parser): parser.add_argument( '--force', action='store_true', help='Create admin user even if one already exists', ) def handle(self, *args, **options): # Get credentials from environment variables username = config('ADMIN_USERNAME', default='admin') password = config('ADMIN_PASSWORD', default='admin123') email = config('ADMIN_EMAIL', default='admin@boulangerie.fr') # Check if admin user already exists if User.objects.filter(username=username).exists() and not options['force']: self.stdout.write( self.style.WARNING(f'Admin user "{username}" already exists') ) return # Create the admin user user = User.objects.create_superuser( username=username, email=email, password=password ) self.stdout.write( self.style.SUCCESS(f'Successfully created admin user "{username}"') )