def save_and_login(self, request): 'Create this user in the database, log that user in, and return the Profile' first_name = self.cleaned_data['first_name'] last_name = self.cleaned_data['last_name'] #username = defaultfilters.slugify(self.cleaned_data['email'])[:30] username = Profile.objects.unique_username(first_name, last_name) email = self.cleaned_data['email'] password = self.cleaned_data['password'] new_user = User.objects.create_user(username, email, password) new_user.first_name = first_name new_user.last_name = last_name new_user.save() geuser = Profile(user = new_user, timezone=self.cleaned_data['timezone']) referer = None referer_id = None if 'f' in request.GET: referer_id = request.GET['f'] elif 'f' in request.COOKIES: referer_id = request.COOKIES['f'] if referer_id: try: referer = Profile.objects.get(pk = long(referer_id)) referer.add_participation_points(points=5) referer.save() geuser.referer = referer except (Profile.DoesNotExist, ValueError): pass geuser.save() if self.cleaned_data['picture']: relative_pic_name = save_picture(geuser, self.cleaned_data['picture']) geuser.avatar = relative_pic_name #else: # relative_pic_name = save_gravatar(geuser) geuser.save() if self.cleaned_data['group']: group_id = self.cleaned_data['group'] group = Group.objects.get(pk = group_id) geuser.groups.add(group) user = authenticate(username=new_user.username, password=password) login(request, user) return geuser