from optparse import make_option from django.core.management.base import BaseCommand, CommandError from django.db import transaction from orchestra.apps.accounts.models import Account from orchestra.apps.users.models import User class Command(BaseCommand): def __init__(self, *args, **kwargs): super(Command, self).__init__(*args, **kwargs) self.option_list = BaseCommand.option_list + ( make_option('--noinput', action='store_false', dest='interactive', default=True), make_option('--username', action='store', dest='username'), make_option('--password', action='store', dest='password'), make_option('--email', action='store', dest='email'), ) option_list = BaseCommand.option_list help = 'Used to create an initial account and its user.' @transaction.atomic def handle(self, *args, **options): interactive = options.get('interactive') if not interactive: email = options.get('email') username = options.get('username') password = options.get('password') user = User.objects.create_superuser(username, email, password, account=account, is_main=True) account = Account.objects.create(user=user) user.account = account user.save()