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 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)