La meilleure façon de le faire enregistrer un utilisateur dans Django

Je suis en train de mettre en œuvre d'Enregistrement de l'Utilisateur pour mon Django app. Le livre que j'ai lu mentionne UserCreationForm mais j'ai besoin de plus que juste le nom, mot de passe et adresse e-mail. J'ai pu mettre en œuvre mes propres utilisateur de l'objet et de l'utilisation ModelForm je pense, mais alors je perds sur certains django convenances pour l'authentification. Enfin, j'ai lu quelque chose à propos de Userprofile qui les Utilisateurs de suppléments, je suppose, donc je pense que j'ai besoin d'une combinaison de toutes ces choses. Voici ce que j'ai jusqu'à présent.

Vue - c'est assez simple. Tout ce que je veux faire ici est de créer mon formulaire et enregistrer l'utilisateur

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})

Forme - c'est mon formulaire de création d'un utilisateur. Ou le début d'au moins

class RegisterForm1(forms.ModelForm):
    class Meta:
        model = User

class RegisterForm2(forms.ModelForm):
    class Meta:
        model = UserProfile

Modèle - c'est mon UserProfile que je veux supplément Utilisateur.

class UserProfile(models.Model):
    user = models.OneToOneField(User)
    phonenumber = PhoneNumberField()

Est clair ce que je suis en train de faire? Suis-je sur la bonne voie

InformationsquelleAutor JPC | 2010-08-19