def create_new_user(email, name = None): ups = UserProfile.objects.filter(email = email) if len(ups) > 0: print (len(ups)) print ("User(s) with email {} already exists, aborting user creation!". format(email)) return None username = new_user_name() user = User.objects.create_user(username, email = None, password = None) user.is_active = True user.is_staff = False user.is_superuser = False # The following fields are fields we store in the UserProfile object instead # user.first_name # user.last_name # user.email user.save() up = UserProfile() up.user = user up.password_is_set = False up.magic_login_code = random.randint(100000000, 999999999) # If the user doesn't specify a name, email is used as the default if name is None: up.name = email else: up.name = name up.email = email up.phone = '' up.verification_code = new_phone_verification_number() up.is_verified = False up.state = 'CA' up.message_frequency = 3 up.forecast_email = False up.set_equipment([]) up.beta_test = True # In the future, we should separate phone-number, etc., into a separate model up.save() print ("User {} created.".format(email)) return user