def post(self, request, *args, **kwargs): user_form = UserForm(request.POST, instance=request.user) sp_form = SocialProfileForm(request.POST, instance=request.user.social_profile) if user_form.is_valid() & sp_form.is_valid(): user_form.save() sp_form.save() messages.add_message(self.request, messages.INFO, _('Your profile has been updated.')) return HttpResponseRedirect(sp_form.cleaned_data.get('returnTo', DEFAULT_RETURNTO_PATH)) else: messages.add_message(self.request, messages.INFO, _('Your profile has NOT been updated.')) return self.render_to_response({'sp_form': sp_form, 'user_form': user_form})
def post(self, request, *args, **kwargs): # user_form = UserForm(request.POST, instance=request.user) return_to = self.request.GET.get('returnTo', DEFAULT_RETURNTO_PATH) sp_form = SocialProfileForm(request.POST, instance=request.user) sp_form.initial['returnTo'] = return_to # if user_form.is_valid() & sp_form.is_valid(): if sp_form.is_valid(): try: # user_form.save() sp_form.save() messages.add_message(self.request, messages.INFO, _('Your profile has been updated.')) return HttpResponseRedirect(sp_form.cleaned_data.get('returnTo', DEFAULT_RETURNTO_PATH)) except Exception as e: messages.add_message(self.request, messages.INFO, _('ERROR: Your profile has NOT been updated! ['+str(e)+']')) return self.render_to_response({'sp_form': sp_form}) else: messages.add_message(self.request, messages.INFO, _('Your profile has NOT been updated.')) return self.render_to_response({'sp_form': sp_form})
def get_context_data(self, **kwargs): """Load up the default data to show in the display form.""" LOGGER.debug("socialprofile.views.SocialProfileView.get_context_data") username = self.kwargs.get('username') if username: user = get_object_or_404(User, username=username) elif self.request.user.is_authenticated(): user = self.request.user else: raise Http404 # Case where user gets to this view anonymously for non-existent user return_to = self.request.GET.get('returnTo', DEFAULT_RETURNTO_PATH) sp_form = SocialProfileForm(instance=user.social_profile) user_form = UserForm(instance=user) sp_form.initial['returnTo'] = return_to return {'sp_form': sp_form, 'user_form': user_form}
def profile_edit(request): """ Profile Editing Page url: / template : socialprofile/sp_profile_edit.html """ LOGGER.debug('socialprofile.views.profile_edit') if request.method == 'POST': # If the form has been submitted... form = SocialProfileForm(request.POST) # A form bound to the POST data if form.is_valid(): # All validation rules pass user = request.user form.clean() user.username = form.cleaned_data['username'] user.email = form.cleaned_data['email'] user.first_name = form.cleaned_data['first_name'] user.last_name = form.cleaned_data['last_name'] profile = user.social_profile profile.gender = form.cleaned_data['gender'] profile.url = form.cleaned_data['url'] profile.image_url = form.cleaned_data['image_url'] profile.description = form.cleaned_data['description'] returnTo = form.cleaned_data.get('returnTo', DEFAULT_RETURNTO_PATH) try: user.save() profile.save() messages.add_message(request, messages.INFO, 'Your profile has been updated.') return HttpResponseRedirect(reverse('sp_profile_view_page') + '?returnTo=' + returnTo) except IntegrityError: form._errors = {'username': [u'Your chosen username was not unique, please choose another username.'], } messages.add_message(request, messages.ERROR, 'Your chosen username was not unique.') else: returnTo = request.GET.get('returnTo', DEFAULT_RETURNTO_PATH) form = SocialProfileForm(user=request.user, return_to=returnTo) # Pass in User to Pre-Populate with Current Values response_data = {'form': form} return render_to_response('socialprofile/sp_profile_edit.html', response_data, context_instance=RequestContext(request))