예제 #1
0
    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()
예제 #2
0
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())