from django.contrib.auth import get_user_model from django.contrib.auth.models import Group from django.core.management.base import BaseCommand class Command(BaseCommand): help = 'Добавляет 1 или нескольких юзеров в указанные группы' def add_arguments(self, parser): parser.add_argument( '--users', type=str, dest='users_emails', help='Емейлы пользователей для добавления' ) parser.add_argument( '--groups', type=str, dest='groups_names', help='Наименования групп для добавления' ) def handle(self, *args, **options): for email in options['users_emails'].split(', '): try: user = get_user_model().objects.get(email=email) for name in options['groups_names'].split(', '): try: g = Group.objects.get(name=name) g.user_set.add(user) except Group.DoesNotExist: print("""Group with name "%s" doesn't exist""") if name == "admin": user.is_superuser = True user.is_staff = True if name != "students" or name != "teachers": user.is_staff = True user.save() except get_user_model().DoesNotExist: print("""user with email: "%s" not found""" % email)