def save(self,commit=True): instance = super(ProfileForm,self).save(commit=commit) u = User() u.has_profile = True u.username = ''.join(random.choice(string.ascii_uppercase + string.digits) for x in range(20)) u.first_name = self.cleaned_data['first_name'] u.last_name = self.cleaned_data['last_name'] u.email = self.cleaned_data['email'] u.save() for p in Profile.objects.filter(user=u): p.delete() instance.user = u instance.save() return instance