def seed_addresses(): addresses_to_seed = 25 address_count = Address.objects.all().count() sys.stdout.write('[+] Seeding %d addresses\n' % (addresses_to_seed - address_count)) for i in range(address_count, addresses_to_seed): if bool(random.getrandbits(1)): user = AppUser.objects.order_by('?').only('id', 'first_name', 'last_name').first() else: user = None address = Address( country=faker.country(), city=faker.city(), zip_code=faker.zipcode(), # or faker.postcode() address=faker.street_address(), # address=faker.address() user=user) if user is not None: address.first_name = user.first_name address.last_name = user.last_name else: profile = faker.profile(fields='name') first_name = profile['name'].split()[0] last_name = profile['name'].split()[1] address.first_name = first_name address.last_name = last_name address.save() address.save()
def seed_authors(): role, created = get_or_create(db.session, Role, defaults={'description': 'for authors only'}, name='ROLE_AUTHOR') authors_count = db.session.query(User.id).filter( User.roles.any(id=role.id)).count() authors_count = User.query.filter(User.roles.any(id=role.id)).count() authors_to_seed = 5 authors_to_seed -= authors_count for i in range(0, authors_to_seed): profile = faker.profile(fields='username,mail,name') username = profile['username'] first_name = profile['name'].split()[0] last_name = profile['name'].split()[1] email = profile['mail'] password = bcrypt.generate_password_hash('password') user = User(username=username, first_name=first_name, last_name=last_name, email=email, password=password, roles=[role]) db.session.add(user) db.session.commit() # db.session.add(UserRole(user_id=user.id, role_id=role.id)) db.session.commit()
def seed_users(): users_count = AppUser.objects.count() users_to_seed = 23 sys.stdout.write('[+] Seeding %d users\n' % (users_to_seed - users_count)) for i in range(users_count, users_to_seed): profile = faker.profile(fields='username,mail,name') username = profile['username'] first_name = profile['name'].split()[0] last_name = profile['name'].split()[1] email = profile['mail'] password = '******' # create_user instead of create, to hash AppUser.objects.create_user(username=username, first_name=first_name, last_name=last_name, email=email, password=password)
def seed_authors(): content_type = ContentType.objects.get(app_label='articles', model='article') create_article_permission, created = Permission.objects.get_or_create( codename='can_create_articles', defaults={ 'name': 'Can create Articles', 'content_type': content_type }, ) update_article_permission, created = Permission.objects.get_or_create( codename='can_update_articles', defaults={ 'name': 'Can update Articles', 'content_type': content_type }, ) delete_article_permission, created = Permission.objects.get_or_create( codename='can_delete_articles', defaults={ 'name': 'Can delete Articles', 'content_type': content_type }, ) authors_group, created = Group.objects.get_or_create(name='authors') authors_group.permissions.add(create_article_permission) authors_group.permissions.add(update_article_permission) authors_group.permissions.add(delete_article_permission) authors_count = AppUser.objects.filter( groups__name__iexact='authors').count() authors_to_seed = 5 sys.stdout.write('[+] Seeding %d authors\n' % (authors_to_seed - authors_count)) for i in range(authors_count, authors_to_seed): username = faker.profile(fields='username')['username'] first_name = faker.first_name() last_name = faker.last_name() email = faker.email() password = '******' # create_user instead of create, to hash author = AppUser.objects.create_user(username=username, first_name=first_name, last_name=last_name, email=email, password=password) author.groups.add(authors_group)
def seed_users(): users_count = AppUser.objects.count() users_to_seed = 23 sys.stdout.write('[+] Seeding %d users\n' % (users_to_seed - users_count)) for i in range(users_count, users_to_seed): username = faker.profile(fields='username')['username'] first_name = faker.first_name() last_name = faker.last_name() email = faker.email() password = '******' # create_user instead of create, to hash AppUser.objects.create_user(username=username, first_name=first_name, last_name=last_name, email=email, password=password)
def seed_users(): role, created = get_or_create( db.session, Role, defaults={'description': 'for standard users'}, name='ROLE_USER') db.session.commit() non_user_ids = db.session.query( User.id).filter(~User.roles.any(id=role.id)).all() all_users_count = db.session.query(func.count(User.id)).all()[0][0] all_users_count = db.session.query(User.id).count() # User.query.filter(User.roles.any(UserRole.role_id.in_([1,2]))).count() standard_users_count = db.session.query(User).filter( User.roles.any(UserRole.role_id.in_([role.id]))).count() standard_users_count = db.session.query(User.id).filter( User.roles.any(id=role.id)).count() users_to_seed = 23 users_to_seed -= standard_users_count sys.stdout.write('[+] Seeding %d users\n' % users_to_seed) for i in range(0, users_to_seed): profile = faker.profile(fields='username,mail,name') username = profile['username'] first_name = profile['name'].split()[0] last_name = profile['name'].split()[1] email = profile['mail'] password = bcrypt.generate_password_hash('password') user = User(username=username, first_name=first_name, last_name=last_name, email=email, password=password) user.roles.append(role) db.session.add(user) db.session.commit() db.session.commit()