def save(self): firstname = self.cleaned_data['first_name'].title() lastname = self.cleaned_data['last_name'].title() fullname = "%s%s" % (firstname, lastname) username = re.sub("[^a-zA-Z]", "", remove_accents(fullname)) users = User.objects.filter(username__istartswith=username) if users.count() > 0: username = "******" % (username, users.count()) self.cleaned_data['username'] = username new_user = super(I4PSignupForm, self).save() new_user.first_name = firstname new_user.last_name = lastname new_user.save() return new_user
def fix_username(original_name): """ Modify a username to comply with the site username policy, basically getting rid of accents, spaces and special characters and making sure there's no duplicate, even with a different case. """ from django.contrib.auth.models import User username = re.sub("[^a-zA-Z0-9]", "", remove_accents(original_name)) name, idx = username, 2 while True: try: User.objects.get(username__iexact=name) name = username + str(idx) idx += 1 except User.DoesNotExist: username = name break return username
def handle(self, *args, **options): # User.objects.filter(is_superuser=False).delete() # I4pProfile.objects.all().delete() # Location.objects.all().delete() with open(options.get('file'), 'rb') as file: reader = csv.reader(file, delimiter=';') reader.next() for row in reader: full_name, pwd, email, addr, country, zipcode, city, about_me, lon, lat, date_joined = row full_name = full_name.split(" ") firstname, lastname = full_name[0].title(), " ".join( full_name[1:]).title() username = "******" % (firstname, lastname) username = remove_accents( username.replace(" ", "").replace("-", "")) users = User.objects.filter(username__istartswith=username) if users.count() > 0: username = "******" % (username, users.count()) user = UserenaSignup.objects.create_inactive_user( username, email, "changeme", send_email=False) userena = UserenaSignup.objects.get(user__username=username) assert user.id == userena.user.id userena.activation_key = userena_settings.USERENA_ACTIVATED user = userena.user user.is_active = True userena.save() user.first_name = firstname user.last_name = lastname user.date_joined = datetime.strptime(date_joined, "%Y-%m-%d %H:%M:%S") user.email = email user.password = "******" % pwd user.save() full_addr = [] addr = addr.strip() if addr: full_addr.append(addr) if zipcode: full_addr.append(zipcode) if city: full_addr.append(city) if full_addr: addr = ",".join(full_addr) lon = lon.strip() or "0.0" lat = lat.strip() or "0.0" location = Location.objects.create(lon=float(lon), lat=float(lat), country=country.upper(), address=addr) profile = user.get_profile() profile.about = about_me profile.address = smart_unicode(addr) profile.country = country.upper() profile.location = location profile.save() print profile, "[SAVED]"
def handle(self, *args, **options): # User.objects.filter(is_superuser=False).delete() # I4pProfile.objects.all().delete() # Location.objects.all().delete() with open(options.get('file'), 'rb') as file: reader = csv.reader(file, delimiter=';') reader.next() for row in reader: full_name, pwd, email, addr, country, zipcode, city, about_me, lon, lat, date_joined = row full_name = full_name.split(" ") firstname, lastname = full_name[0].title(), " ".join(full_name[1:]).title() username = "******" % (firstname, lastname) username = remove_accents(username.replace(" ", "").replace("-", "")) users = User.objects.filter(username__istartswith=username) if users.count() > 0: username = "******" % (username, users.count()) user = UserenaSignup.objects.create_inactive_user(username, email, "changeme", send_email=False) userena = UserenaSignup.objects.get(user__username=username) assert user.id == userena.user.id userena.activation_key = userena_settings.USERENA_ACTIVATED user = userena.user user.is_active = True userena.save() user.first_name = firstname user.last_name = lastname user.date_joined = datetime.strptime(date_joined, "%Y-%m-%d %H:%M:%S") user.email = email user.password = "******" % pwd user.save() full_addr = [] addr = addr.strip() if addr: full_addr.append(addr) if zipcode: full_addr.append(zipcode) if city: full_addr.append(city) if full_addr: addr = ",".join(full_addr) lon = lon.strip() or "0.0" lat = lat.strip() or "0.0" location = Location.objects.create(lon=float(lon), lat=float(lat), country=country.upper(), address=addr) profile = user.get_profile() profile.about = about_me profile.address = smart_unicode(addr) profile.country = country.upper() profile.location = location profile.save() print profile, "[SAVED]"