def random_id(*parts, length=11): parts = [str(p) for p in parts] # start HTML ids with an alphabet, not a digit parts.append(get_random_string(1, choices=string.ascii_lowercase)) parts.append( get_random_string(length - 1, choices=string.ascii_lowercase + string.digits)) return "".join(parts)
def create_enrollment_code(sender, instance, created, **kwargs): if created: easychars = '0123456789ABCDEFGHJKLMNPQRSTUVXYZ' code = get_random_string(6, easychars) while Enrollment.objects.filter(course_instance=instance.course_instance, personal_code=code).exists(): code = get_random_string(6, easychars) instance.personal_code = code instance.save()
def create_anon_id(sender, instance, created, **kwargs): if created or not instance.anon_id: nums = string.digits + string.ascii_lowercase code = get_random_string(16, nums) i = 0 while Enrollment.objects.filter(anon_id=code).exists(): code = get_random_string(16, nums) i += 1 if i > 10000: raise RuntimeError("No anonymous user ids available") instance.anon_id = code instance.save(update_fields=['anon_id'])
def random_id(*parts, length=11): parts = [str(p) for p in parts] # start HTML ids with an alphabet, not a digit parts.append(get_random_string(1, choices=string.ascii_lowercase)) parts.append(get_random_string(length - 1, choices=string.ascii_lowercase + string.digits)) return "".join(parts)
def random_id(length=11): # start HTML ids with an alphabet, not a digit return 'r' + get_random_string(length - 1, choices=string.ascii_lowercase + string.digits)