Django渲染到新模板不起作用

时间:2018-04-12 09:43:42

标签: python django jinja2

我正在尝试通过jquery ajax调用渲染新模板'quesHome.html'。但页面未重定向到quesHome页面。我也没有收到任何错误。我是Django的初学者,如果我错了,请纠正我。

以下是我的观点:

def getSearchQuesions(req):
    print("getSearchQuesions")
    topic = Topic.objects.all()
    form = CreateQuestion()
    ques_id = req.GET['ques_id']
    question = Question.objects.filter(pk=ques_id)
    return render(req,'quesHome.html',{'topic':topic ,'question':question,'form':form})

以下是我的js代码:

function getFilteredQuestions(ques_id) {
    $.ajax({
        type: 'GET',
        url: '/getSearchQuesions/',
        data: { "ques_id": ques_id },
        success: function () {
            console.log("success");
        }
    });
}

以下是我的urls.py:

 url(r'^getSearchQuesions/$', for_views.getSearchQuesions, name='getSearchQuesions'),

以下是我的quesHome.html:

{%extends 'master_page.html'%}
{% block quesHome %}
    <div class="container" id="cont">
        <div class="row topicDiv">
            <input type="hidden" value="{%csrf_token%}" id="hid_csrf" />
            {% for t in topic %}
            <h4 id="{{t.pk}}" class="topCls"><span class="badge badge-Info">{{t.name}}</span></h4>
            &nbsp;
            {% endfor %}
        </div>
        <br />
        <div class="" id="">
            {% for q in question %}
            <div id="feed">
                <div id="">
                    <h5><span class="">{{q.name}}</span></h5>
                </div>
                <div class="">
                    <h6><span class="">{{q.answer}}</span></h6>
                </div>
            </div>
            <br />
            {% endfor %}
        </div>
    </div>
{% endblock %}

2 个答案:

答案 0 :(得分:3)

您正在向ajax查询发送一个返回信息,然后该信息将尝试对其执行操作。

不要使用ajax调用,请尝试类似:

window.location = '/getSearchQuesions/'+ques_id

答案 1 :(得分:1)

您正在做的是通过ajax发出请求,并且您的视图正在返回模板。您期望重定向到具有问题ID的页面。你可以简单地不进行这个ajax调用,如果有一个你打算绑定这个ajax的链接,如果它是一个锚标记,就让它正常运行。因为那样你将被重定向,而不需要ajax调用。