Django-Registration & Django-Profile, using your own custom form

Posted by Issy on Stack Overflow See other posts from Stack Overflow or by Issy
Published on 2010-04-08T16:05:30Z Indexed on 2010/04/22 1:03 UTC
Read the original article Hit count: 736

Hey All,

I am making use of django-registration and django-profile to handle registration and profiles. I would like to create a profile for the user at the time of registration. I have created a custom registration form, and added that to the urls.py using the tutorial on:

http://dewful.com/?p=70

The basic idea in the tutorial is to override the default registration form to create the profile at the same time.

forms.py - In my profiles app

from django import forms
from registration.forms import RegistrationForm
from django.utils.translation import ugettext_lazy as _
from profiles.models import UserProfile
from registration.models import RegistrationProfile

attrs_dict = { 'class': 'required' }

class UserRegistrationForm(RegistrationForm):
    city = forms.CharField(widget=forms.TextInput(attrs=attrs_dict))

    def save(self, profile_callback=None):
        new_user = RegistrationProfile.objects.create_inactive_user(username=self.cleaned_data['username'],
        password=self.cleaned_data['password1'],
        email=self.cleaned_data['email'])
        new_profile = UserProfile(user=new_user, city=self.cleaned_data['city'])
        new_profile.save()
        return new_user

In urls.py

from profiles.forms import UserRegistrationForm

and

url(r'^register/$',
                           register,
                           {'backend': 'registration.backends.default.DefaultBackend', 'form_class' : UserRegistrationForm},
                           name='registration_register'),

The form is displayed, and i can enter in City, however it does not save or create the entry in the DB.

© Stack Overflow or respective owner

Related posts about django

Related posts about django-forms