How the current user logging-in first while registration.. you mean to
say after successfully registration the user must login automatically.

On Apr 11, 7:55 pm, Praveen <praveen.python.pl...@gmail.com> wrote:
> Hi all, i am really fed up and have tried number of way. Please read
> my last line which really describe where i am facing problem.
> First Attempt.
> models.py
> -------------
> class UserProfile(models.Model):
>     user = models.ForeignKey(User, unique=True, verbose_name=_
> ('user'))
>     gender = models.CharField(_('gender'), max_length=1,
> choices=GENDER_CHOICES, blank=True)
>     dob = models.DateField(_('dob'), max_length=10, help_text=_
> ("Should be in date format"), null=True, blank=True)
>     city = models.CharField(_('res_city'), max_length=30,
> choices=CITY_CHOICES, blank=True)
>
> class RegistrationForm(forms.Form):
>     """The basic account registration form."""
>     title = forms.CharField(max_length=30, label=_('Title'),
> required=False)
>     email = forms.EmailField(label=_('Email address'),
>         max_length=75, required=True)
>     password2 = forms.CharField(label=_('Password (again)'),
>         max_length=30, widget=forms.PasswordInput(), required=True)
>     password1 = forms.CharField(label=_('Password'),
>         max_length=30, widget=forms.PasswordInput(), required=True)
>     first_name = forms.CharField(label=_('First name'),
>         max_length=30, required=True)
>     last_name = forms.CharField(label=_('Last name'),
>         max_length=30, required=True)
>     #gender = forms.CharField(label = _('Gender'), widget =
> forms.Select(choices=GENDER_CHOICES,attrs=attrs_dict))
>     #dob = forms.DateTimeField(widget=forms.DateTimeInput(attrs=dict
> (attrs_dict, max_length=75)), label=_(u'date of birth'))
>     #city = forms.CharField(label = _('res_city'), widget =
> forms.Select(choices=CITY_CHOICES,attrs=attrs_dict))
>
>     def __init__(self, *args, **kwargs):
>         self.contact = None
>         super(RegistrationForm, self).__init__(*args, **kwargs)
>
>     newsletter = forms.BooleanField(label=_('Newsletter'),
>         widget=forms.CheckboxInput(), required=False)
>
>     def clean_password1(self):
>         """Enforce that password and password2 are the same."""
>         p1 = self.cleaned_data.get('password1')
>         p2 = self.cleaned_data.get('password2')
>         if not (p1 and p2 and p1 == p2):
>             raise forms.ValidationError(
>                 ugettext("The two passwords do not match."))
>
>         # note, here is where we'd put some kind of custom
>         # validator to enforce "hard" passwords.
>         return p1
>
>     def clean_email(self):
>         """Prevent account hijacking by disallowing duplicate
> emails."""
>         email = self.cleaned_data.get('email', None)
>         if email and User.objects.filter(email=email).count() > 0:
>             raise forms.ValidationError(
>                 ugettext("That email address is already in use."))
>
>         return email
>
>     def save(self, request=None, **kwargs):
>         """Create the contact and user described on the form.  Returns
> the
>         `contact`.
>         """
>         if self.contact:
>             log.debug('skipping save, already done')
>         else:
>             self.save_contact(request)
>         return self.contact
>
>     def save_contact(self, request):
>         print " i am in save_contact "
>         log.debug("Saving contact")
>         data = self.cleaned_data
>         password = data['password1']
>         email = data['email']
>         first_name = data['first_name']
>         last_name = data['last_name']
>         username = data['title']
>         #dob = data['dob']
>         #gender = data['gender']
>         #city = data['city']
>
>         verify = (config_value('SHOP', 'ACCOUNT_VERIFICATION') ==
> 'EMAIL')
>
>         if verify:
>             from registration.models import RegistrationProfile
>             user = RegistrationProfile.objects.create_inactive_user(
>                 username, password, email, send_email=True)
>         else:
>             user = User.objects.create_user(username, email, password)
>
>         user.first_name = first_name
>         user.last_name = last_name
>         user.save()
>
>         # If the user already has a contact, retrieve it.
>         # Otherwise, create a new one.
>         try:
>             contact = Contact.objects.from_request(request,
> create=False)
>             #profile = UserProfile.objects.form_request(request,
> create=False)
>         except Contact.DoesNotExist:
>             contact = Contact()
>
>         contact.user = user
>         contact.first_name = first_name
>         contact.last_name = last_name
>         contact.email = email
>         contact.role = 'Customer'
>         contact.title = data.get('title', '')
>         contact.save()
>
>         if 'newsletter' not in data:
>             subscribed = False
>         else:
>             subscribed = data['newsletter']
>
>         signals.satchmo_registration.send(self, contact=contact,
> subscribed=subscribed, data=data)
>
>     def save_profile(self, request):
>             user_obj = User.objects.get(pk=request.user.id)
>             #user_obj.first_name = self.cleaned_data['first_name']
>             #user_obj.last_name = self.cleaned_data['last_name']
>             try:
>                     profile_obj = request.user.get_profile()
>             except ObjectDoesNotExist:
>                     profile_obj = UserProfile()
>                     profile_obj.user = user
>             profile_obj.dob = self.cleaned_data['dob']
>             profile_obj.gender = self.cleaned_data['gender']
>             profile_obj.city = self.cleaned_data['city']
>             profile_obj.mobile = self.cleaned_data['mobile']
>             profile_obj.save()
>             return profile_obj
>             #user_obj.save()
>
> regview.py
> ------------
>
> def register_handle_form(request, redirect=None):
>     """
>     Handle all registration logic.This is broken out from "register"
> to allow easy overriding/hooks such as a combined login/register
> page.
>     This method only presents a typical login or register form, not a
> full address form (see register_handle_address_form for that one.)
>     Returns:
>     - Success flag
>     - HTTPResponseRedirect (success) or form (fail)
>     """
>     print "I am in handle form"
>     form_class = utils.get_profile_form()
>     if request.method == 'POST':
>         print "i am in profile post"
>         profileform = form_class(data=request.POST,
> files=request.FILES)
>         form = RegistrationForm(request.POST)
>         print "Form errror :", form.errors, profileform.errors //for
> this no error is coming so both form valid
>         if form.is_valid():
>             contact = form.save(request)
>             data= profileform.cleaned_data
>             user = form.data['title']
>             gender = data['gender']
>             dob = data['dob']
>             city = data['city']
>             profile_obj = profileform.save(commit=False)
>             profile_obj.user = request.user
>             profile_obj.save()
>             if not redirect:
>                 redirect = urlresolvers.reverse
> ('registration_complete')
>             return (True, http.HttpResponseRedirect
> (urlresolvers.reverse('registration_complete')))
>             #return HttpResponseRedirect(reverse
> ('registration_complete'))
>
>     else:
>         initial_data = {}
>         try:
>             contact = Contact.objects.from_request(request,
> create=False)
>             initial_data = {
>                 'email': contact.email,
>                 'first_name': contact.first_name,
>                 'last_name': contact.last_name }
>         except Contact.DoesNotExist:
>             log.debug("No contact in request")
>             contact = None
>
>         signals.satchmo_registration_initialdata.send(contact,
>             contact=contact,
>             initial_data=initial_data)
>
>         form = RegistrationForm(initial=initial_data)
>         profileform = form_class(data=request.POST,
> files=request.FILES)
>
>     return (False, form, profileform)
>
> Problem:Data is saving for register and contact but for profile i get
> error
> ValueError
> Exception Value:
>
> Cannot assign "<django.contrib.auth.models.AnonymousUser object at
> 0x916b0cc>": "UserProfile.user" must be a "User" instance.
>
> Please look in to regview.py this line
> I am trying to get the user = form.data['title'] which is currently
> created and with that user the profile would saved.
> I will be very thankful for your suggestion
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To post to this group, send email to django-users@googlegroups.com
To unsubscribe from this group, send email to 
django-users+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/django-users?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to