django HttpResponseRedirect 没有重定向

Posted

技术标签:

【中文标题】django HttpResponseRedirect 没有重定向【英文标题】:django HttpResponseRedirect is not redirecting 【发布时间】:2016-09-27 05:46:53 【问题描述】:

我正在使用 jquery 对话框打开一个 django 表单,并在提交表单后将其重定向到不同的视图。重定向的 url 不是在浏览器中重定向,而是在浏览器控制台中打印。

我的退货声明是return HttpResponseRedirect('q/submitted_question_edit?q_id='+str(q.id))

它被重定向到的视图是

def submitted_question_edit(request):
  q_id=request.GET['q_id']
  q_record = Questions.objects.get(id=q_id)
  form = QuestionForm(instance=q_record)
  return render(request, 'question/submitted_question_edit.html', 'submitted_question_form': form)

表单提交后我的jquery成功函数是

        function successQuestionPost(data)
        $('#question_form').dialog('close');
                console.log(data);
                // reset the question form
                $("#id_title").val('');
                CKEDITOR.instances.id_question.setData('');
                $("#id_tags").val('');
                

question_form 是表单的名称,我使用 jquery ajax 提交它。我认为由于 jquery 对话框,它没有正确重定向。请帮忙。

【问题讨论】:

你有什么错误或什么吗? 重定向时没有错误 您是否正在使用 ajax 请求访问表单? 是的,使用 Ajax 请求提交 @AlesMaticic 感谢您指出正确的方向,问题在于 ajax 提交 【参考方案1】:

我使用 ajax 提交表单,这是导致问题的原因,我使用下面的 jquery 提交带有 ajax 的表单

$("#question_form").on("submit", function(event) 
        event.preventDefault();
        // moving textarea content to hidden content
        // $("#question_hidden").attr('value', $("#id_question").val());
        console.log( $( this ).serialize() );
        $.ajax( 
        type: 'GET',
        url:"http://localhost:8000/q/",
        // data:$('.q_id_c'),
        data:$(this).serialize(),
        success: successQuestionPost,
        dataType: 'html'
        );

);

我删除了它,httpredirectresponse 现在按预期工作。

【讨论】:

以上是关于django HttpResponseRedirect 没有重定向的主要内容,如果未能解决你的问题,请参考以下文章

Django初识

Django之路

Django系列

django 错误

mac电脑安装django ,运行django报错解决

Django 大神带你飞系列~走进Django