models.py
class UserProfile(models.Model):
user = models.ForeignKey(User, unique=True, verbose_name=_(‘user’)) gender = models.CharField(_(‘gender’), max_length=10)
dob = models.DateField(_(‘dob’), max_length=10)
city = models.CharField(_(‘res_city’), max_length=30)
pincode = models.IntegerField(_(‘pincode’), max_length = 10)
mobile = models.CharField(_(‘mobile’), max_length = 15)
objects = ProfileManager()
def __unicode__(self):
return u”%s” % self.user
def get_absolute_url(self):
return (‘profiles_profile_detail’, (), { ‘username’: self.user.username })
views.py
def register(request, success_url=None,form_class=RegistrationForm, profile_callback=None,
template_name=’registration/registration_form.html’,
extra_context=None):
pform_class = utils.get_profile_form()
if request.method == ‘POST’:
profileform = pform_class(data=request.POST, files=request.FILES)
form = form_class(data=request.POST, files=request.FILES)
if form.is_valid():
new_user = form.save()
profile_obj = profileform.save(commit=False)profile_obj.user = new_user
profile_obj.save()
return HttpResponseRedirect(‘/accounts/register/complete/’) #return HttpResponseRedirect(success_url or reverse(‘registration_complete’))
else:
form = form_class()
profileform = pform_class()
if extra_context is None:
extra_context = {}
context = RequestContext(request)
for key, value in extra_context.items():
context[key] = callable(value) and value() or value
return render_to_response(template_name,{‘form’: form,’profileform’:profileform,,context_instance=context)
urls.py
———–
url(r’^accounts/register/$’,register, {‘form_class’: RegistrationForm, ‘profile_callback’:UserProfile.objects.profile_callback},name = ‘registration_register’),
here we are rendering form and profileform to generate fields on registration_form.htm
