def register(request): fields = Field.objects.filter(required=True) if request.method == 'POST': userForm = forms.RegistrationForm(request.POST, prefix='user') profileForm = ProfileForm(request.POST, fields=fields, prefix='profile') else: userForm = forms.RegistrationForm(prefix='user') profileForm = ProfileForm(fields=fields, prefix='profile') if userForm.is_valid() and profileForm.is_valid(): oldUser = None try: oldUser = User.objects.get(username__exact=userForm.cleaned_data['username']) except ObjectDoesNotExist, e: pass if not oldUser: user = User.objects.create_user(userForm.cleaned_data['username'], userForm.cleaned_data['email'], userForm.cleaned_data['password']) user.first_name = userForm.cleaned_data['firstName'] user.last_name = userForm.cleaned_data['lastName'] user.save() member = user.member member.birthday = userForm.cleaned_data['birthday'] member.profession = userForm.cleaned_data['profession'] member.save() user = authenticate(username=userForm.cleaned_data['username'], password=userForm.cleaned_data['password']) login(request, user) messages.info(request, "Welcome!") for field in fields: value = FieldValue.objects.create(field=field, value=profileForm.fieldValue(field), member=member) return HttpResponseRedirect(reverse('home'))
def createUser(request): fields = Field.objects.filter(required=True) if request.method == "POST": userForm = RegistrationForm(request.POST, prefix="user") profileForm = ProfileForm(request.POST, fields=fields, prefix="profile") else: userForm = RegistrationForm(prefix="user") profileForm = ProfileForm(fields=fields, prefix="profile") if userForm.is_valid() and profileForm.is_valid(): randomPassword = "".join( [random.choice(string.letters + string.punctuation + string.digits) for i in range(15)] ) if userForm.cleaned_data["username"] == "": userForm.cleaned_data["username"] = userForm.cleaned_data["email"].split("@")[0] oldUser = None try: oldUser = User.objects.get(username__exact=userForm.cleaned_data["username"]) except User.DoesNotExist, e: pass if oldUser: messages.info(request, "The username '%s' already exists." % (userForm.cleaned_data["username"])) else: user = User.objects.create_user( userForm.cleaned_data["username"], userForm.cleaned_data["email"], randomPassword ) user.first_name = userForm.cleaned_data["firstName"] user.last_name = userForm.cleaned_data["lastName"] user.save() member = user.member member.tagline = userForm.cleaned_data["tagline"] member.save() messages.info(request, "User '%s' created!" % userForm.cleaned_data["username"]) notification.send([user], "account_created", {"user": user, "creator": request.user}) for field in fields: value = FieldValue.objects.create(field=field, value=profileForm.fieldValue(field), member=member)