在Django中,如何单击按钮来调用视图然后重新加载页面

时间:2016-10-18 03:48:50

标签: ajax django

在Django中,如何点击页面上的按钮而不将任何值传递给view.py,然后重新加载当前页面?我在HTML中有一个按钮:

<button type="button" class="btn btn-primary" id="refresh">refresh page</button>

我想在view.py中调用一个视图,其中将返回新的HTML:

@csrf_exempt
def topology_show_refresh(request):
    '''topology refresh'''
    plan = {...}
    ...
    return render(request, 'topology_show.html', {'plan': plan})

plan字典将在新页面中使用。

    {% if plan.try == 'first' %}
        <script type="text/javascript">
            var max_lane_num = {{plan.max_lane_num}};
            var flag = 0;
        </script>
    {% else %}
        <script type="text/javascript">
            var max_lane_num = {{plan.lane_second}};
            var flag = 1;
        </script>
    {% endif %}

以我的方式,我使用ajax跳转到此视图,但我不知道如何处理返回,例如,将plan传递给HTML。

$(function(){
    $("#refresh").click(function(event){
        url = 'refresh/';
        $.post(url, {}, function(ret){
            //do something
            //how to pass "plan" dictionary to HTML
        });
    });
});

1 个答案:

答案 0 :(得分:1)

你非常接近重新加载页面的任务, 使用&#39; location.reload(true)&#39;而不是&#39; window.location.reload();&#39;

通过success()函数处理响应数据。 试试这个:

    $(function(){
        $("#refresh").click(function(event){
            $.ajax({
             type: "POST",
             url: 'refresh/',
              success:function(response) {
              location.reload(true);

              //do something with 'response'
             }
            });
    });