title: Best way to do register a user in Django
body: <p>I'm trying to implement User Registration for my Django app.  The book I read mentions UserCreationForm but I need more than just name, password, and email address.  I could implement my own user object and use ModelForm I think, but then I lose out on some of the django conveniences for authentication.  Finally, I read something about UserProfiles which supplement Users I guess, so I think I need some combination of all of these things.  Here's what I have so far.</p>
  
  <p>View - this is simple enough.  All I want to do here is create my form and save the user</p>
  
  <pre><code>def main(request):
      rform1 = forms.RegisterForm1()
      rform2 = forms.RegisterForm2()
      return render_to_response("authentication/index.html", {'form1': rform1, 'form2':rform2})
  
  def register(request):
      if request.method == 'POST':
          rform1 = forms.RegisterForm1(request.POST)
          rform2 = forms.RegisterForm2(request.POST)
          if rform1.is_valid() and rform2.is_valid():
              new_user = rform1.save()
              return HttpResponseRedirect("/register-success/")
      return render_to_response("authentication/index.html", {'form1': rform1,'form2':rform2})
  </code></pre>
  
  <p>Form - this is my form for creating a user.  Or the start of it at least</p>
  
  <pre><code>class RegisterForm1(forms.ModelForm):
      class Meta:
          model = User
  
  class RegisterForm2(forms.ModelForm):
      class Meta:
          model = UserProfile
  </code></pre>
  
  <p>Model - this is my UserProfile that I want to supplement User with.</p>
  
  <pre><code>class UserProfile(models.Model):
      user = models.OneToOneField(User)
      phonenumber = PhoneNumberField()
  </code></pre>
  
  <p>Is it clear what I'm trying to do?  Am I on the right track</p>