def edit(request): msg = None success = None try: if request.method == 'POST': form = EditForm(request.POST) u = User.objects.filter(email=request.session['session_id'])[0] if form.is_valid(): u.name = form.cleaned_data['name'] u.phone = form.cleaned_data['phone'] u.organisation = form.cleaned_data['organisation'] u.subscribe = form.cleaned_data['subscribe'] u.save() request.session['name'] = u.name msg = 'Your changes were saved successfully' success = 1 else: msg = 'There are errors in the form' success = 0 else: u = User.objects.filter(email=request.session['session_id'])[0] form = EditForm({'name': u.name, 'phone': u.phone, 'organisation': u.organisation, 'subscribe': u.subscribe}) return render_to_response('users/edit.html', {'name': 'Edit', 'list': menu, 'form': form, 'msg': msg, 'success': success}, context_instance=RequestContext(request)) except KeyError: form = LoginForm() next = '/users/edit' return HttpResponseRedirect('/users/login/?next=%s' % next)
def user_edit(request, pk): form = EditForm(request.POST or None, instance=User.objects.get(pk=pk)) if form.is_valid(): form.save() info(request, 'User details changed.') return HttpResponseRedirect(reverse("user-list")) return direct_to_template(request, "user_edit.html", extra_context={ "form": form, "nav": {"selected": "users",}, })
def edit_profile(request): template_name = 'users/edit.html' if request.method == 'POST': form = EditForm(request.POST, instance=request.user) if form.is_valid(): form.save() return redirect('view_profile') else: form = EditForm(instance=request.user) context = { 'page_title': 'EDIT PROFILE', 'form': form, } return render(request, template_name, context)
def user_edit(request, pk): form = EditForm(request.POST or None, instance=User.objects.get(pk=pk)) if form.is_valid(): form.save() info(request, 'User details changed.') return HttpResponseRedirect(reverse("user-list")) return direct_to_template(request, "user_edit.html", extra_context={ "form": form, "nav": { "selected": "users", }, })
def edit(request): """ This function handles the user information editing form submissions. :param request: The request object from the user. :return: """ # Default context context = {} if 'logged' not in request.session: return redirect('/article/index/') # The user has filled the form itself. if request.method == 'POST': # Create new form with data received from the user. edit_form = EditForm(request.POST, request.FILES) if edit_form.is_valid(): # Get the currently logged in user. current_user_name = request.session['username'] # Get the current user object current_user = Users.objects.get(user_name=current_user_name) # Update the user's name if it was filled in the fields. if 'user_name' in request.POST and request.POST['user_name'] != "": current_user.user_name = request.POST['user_name'] request.session['username'] = request.POST['user_name'] # Update the user's email if it was filled in the fields. if 'user_email' in request.POST and request.POST[ 'user_email'] != "": current_user.user_email = request.POST['user_email'] # Update the user's profile pic if it was filled in the fields. if 'user_image' in request.FILES: # Get the just uploaded image. user_image = request.FILES['user_image'] # Get the image's extension image_extension = user_image.name.split('.')[1] # Assign the image a new name, with p_user_id as its name. user_image.name = 'p_' + str( current_user.user_id) + '.' + image_extension # Assign the modified image to the current user image path. current_user.user_image_path = user_image # A flag that indicates that the image has been altered. changed_image = True else: # Indicate that the image has not changed. changed_image = False # Save updates to the current user. current_user.save() # The image has changed, I needed to have saved the object first to get the true URL for the image if changed_image: # Save the current profile picture in the session variable. request.session['user_image'] = str( current_user.user_image_path) context = {'edit_status': True} # The user has navigated to the form. Display the empty form. else: # Create new form. edit_form = EditForm() # Add form to the context variable context = {'edit_form': edit_form} return render(request, 'edit_info.html', context)