You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

42 lines
1.6 KiB

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)