from django.contrib.auth.models import Group, Permission from django.contrib.contenttypes.models import ContentType from django.core.management import BaseCommand from django.utils import timezone import pydash as _; _.map = _.map_; _.filter = _.filter_ import random from archilance import util from specializations.models import Specialization from users.models import User class Command(BaseCommand): def handle(self, *args, **options): print('---------------------------------------') print('Generating data...') print('---------------------------------------') User.objects.create_superuser('admin@example.com', '123456') contractor_group = Group.objects.create(name='Исполнители') customer_group = Group.objects.create(name='Заказчики') # ct_proj = ContentType.objects.get_for_model(Project) # ct_spec = ContentType.objects.get_for_model(Specialization) # ct_register = ContentType.objects.get_for_model(RegistrationProfile) # # # proj_perms = Permission.objects.filter(content_type=ct_proj) # spec_perms = Permission.objects.filter(content_type=ct_spec) # ct_register = Permission.objects.filter(content_type=ct_register) # # contractor_group.permissions.add(spec_perms, ct_register) # customer_group.permissions.add(proj_perms, spec_perms, ct_register) _root = Specialization.objects.create(name='_root') stages = ('A','B','C','D') for s1 in stages: x = Specialization.objects.create(name='Стадия %s' % s1, parent=_root) for s2 in stages: y = Specialization.objects.create(name='Стадия %s-%s' % (s1,s2), parent=x) for s3 in stages: z = Specialization.objects.create(name='Стадия %s-%s-%s' % (s1,s2,s3), parent=y) for s4 in stages: Specialization.objects.create(name='Стадия %s-%s-%s-%s' % (s1,s2,s3,s4), parent=z) def create_user(i): username = 'user-%s' % i return User.objects.create( first_name='User-%s' % i, email='%s@example.com' % username, is_active=True, ) users = _.times(create_user, 50) for user in users: user.set_password('123') user.groups.add(customer_group if user.pk % 2 == 0 else contractor_group) user.save()