def edit_user(request): ''' ''' data = {} if request.method == "POST": form = EditUserForm(request.POST) if form.is_valid(): changes = form.cleaned_data profile = UserProfile.objects.get(user_id=request.user.id) user = authenticate(username=profile.user.username, password=changes['current_password']) if user is not None: if changes['new_password'] != '': profile.user.set_password(changes['new_password']) profile.user.save() if changes['email'] != '': profile.user.email = changes['email'] profile.user.save() if changes['location']: profile.location = changes['location'] profile.save() return HttpResponseRedirect('/user/%d' % profile.id) else: data = errors('Invalid password Supplied', data) return HttpResponse(json.dumps(data), content_type="application/json") else: form = EditUserForm() return render(request, 'app/settings.html', {'form': form})
def post(self, request, *args, **kwargs): user = User.objects.filter(username=self.kwargs['username']).first() profile = Profile.objects.filter(user=user).first() user_form = EditUserForm(request.POST, instance=user) profile_form = EditProfileForm(request.POST, instance=profile) if user_form.is_valid() and profile_form.is_valid(): user_form = user_form.save() custom_form = profile_form.save(False) custom_form.user = user_form custom_form.save() return redirect('user', username=user.username) return render(request, self.template_name, args)
def edit(request): user = request.user if request.method == 'GET': return render(request, 'profile/edit.html', { 'form': EditUserForm(instance=user) }) elif request.method == 'POST': form = EditUserForm(request.POST, instance=user) if form.is_valid(): user = form.save(commit=False) errors = [] if user.passport_date > today(): errors.append('Дата выдачи паспорта из будущего') if user.get_age() < 18: errors.append('Пользователю не исполнилось 18') if user.get_age() > 150: errors.append('Пользователь слишком стар') if user.passport_date < user.birthday: errors.append('Паспорт выдан до рождения') if errors: for error in errors: request.user.alert(error) return render(request, 'profile/edit.html', { 'form': EditUserForm(request.POST) }) else: form.save() request.user.alert('Данные сохранены.') return redirect('profile:info') else: err = str(form.errors) + "" if err.find('phone') >= 0: request.user.alert('Пользователь с таким номером телефона уже зарегестрирован') if err.find('passport_id') >= 0: request.user.alert('Пользователь с таким номером паспорта уже зарегестрирован') if err.find('passport_ser') >= 0: request.user.alert('Пользователь с такой серией паспорта уже зарегестрирован') if err.find('username') >= 0: request.user.alert('Пользователь с таким логином уже зарегестрирован') return render(request, 'profile/edit.html', { 'form': EditUserForm(request.POST) })
def edit_user_view(request, user_id): user = User.objects.get(id=user_id) form = EditUserForm(user, request.POST or None) if form.is_valid(): full_name = form.cleaned_data['full_name'] birth_day = form.cleaned_data['birth_day'] phone = form.cleaned_data['phone'] middle_name = form.cleaned_data['middle_name'] email = form.cleaned_data['email'] user.full_name = full_name user.birth_day = birth_day user.phone = phone user.middle_name = middle_name user.email = email user.save() return HttpResponseRedirect('/edit_user/'+str(user.id)+'/') context = { 'user': user, 'form': form } return render(request, 'edit_user.html', context)