def post(self, request): if 'submitExamples' in request.POST: e_form = ExamplesForm(request.POST) if e_form.is_valid(): file1 = e_form.cleaned_data['file1'] file2 = e_form.cleaned_data['file2'] self.generate_img('examples', file1, file2, find_files=True) return HttpResponseRedirect(reverse_lazy('main:home')) return self.render_to_response({ 'e_form': e_form, 'u_form': UserForm }) elif 'submitUser' in request.POST: u_form = UserForm(request.POST, request.FILES) if u_form.is_valid(): file1 = u_form.cleaned_data['file1'] file2 = u_form.cleaned_data['file2'] try: self.generate_img('user', file1, file2) return HttpResponseRedirect(reverse_lazy('main:home')) except (IndexError, ValueError): u_form.add_error(None, 'Can\'t parse SVG image') return self.render_to_response({ 'e_form': ExamplesForm, 'u_form': u_form }) return HttpResponseNotFound()
def detail(request): inside = request.GET.get('inside') obj = request.user pk = obj.pk if request.method == 'GET': form = UserForm(obj, initial={ 'first_name': obj.first_name, 'last_name': obj.last_name, }) if request.session.get('state', None) == 'success': prompt = 'success' request.session['state'] = None redirect_url = request.GET.get('redirect_url', request.META.get('HTTP_REFERER', '/home/')) return render(request, 'main/user/detail.html', locals()) elif request.method == 'POST': form = UserForm(obj, request.POST) if form.is_valid(): obj.first_name = form.cleaned_data.get('first_name', '') obj.last_name = form.cleaned_data.get('last_name', '') original_password = form.cleaned_data.get('original_password') new_password = form.cleaned_data.get('new_password') if new_password: if obj.check_password(original_password): obj.set_password(new_password) obj.save() auth.login(request, obj) request.session['state'] = 'success' return HttpResponseRedirect(request.get_full_path()) else: form.add_error('original_password', '原密码不正确') else: obj.save() request.session['state'] = 'success' return HttpResponseRedirect(request.get_full_path()) return render(request, 'main/user/detail.html', locals())