from django.conf import settings from django.contrib.auth.models import User from django.core.management.base import BaseCommand from judge.models import Language, Profile class Command(BaseCommand): help = 'creates a user' def add_arguments(self, parser): parser.add_argument('name', help='username') parser.add_argument('email', help='email, not necessary to be resolvable') parser.add_argument('password', help='password for the user') parser.add_argument('language', nargs='?', default=settings.DEFAULT_USER_LANGUAGE, help='default language ID for user') parser.add_argument('--superuser', action='store_true', default=False, help="if specified, creates user with superuser privileges") parser.add_argument('--staff', action='store_true', default=False, help="if specified, creates user with staff privileges") def handle(self, *args, **options): usr = User(username=options['name'], email=options['email'], is_active=True) usr.set_password(options['password']) usr.is_superuser = options['superuser'] usr.is_staff = options['staff'] usr.save() profile = Profile(user=usr) profile.language = Language.objects.get(key=options['language']) profile.save()