ajax - 在 Django 中,如何单击按钮调用 View 然后重新加载页面

标签 ajax django

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

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

我想在 view.py 中调用一个 View ,其中将返回新的 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 跳转到这个 View ,但我不知道如何处理返回,例如,将 plan 传递给 HTML。

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

最佳答案

您已经非常接近重新加载页面的任务了, 使用 'location.reload(true)' 而不是 'window.location.reload();'

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

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

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

关于ajax - 在 Django 中,如何单击按钮调用 View 然后重新加载页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40099185/

相关文章:

python - MySQL 客户端、Django

python - 如何在django中将数据发送到base.html?

javascript - 在 Javascript 中解析 JSON 时出现问题

javascript - 如何修复 PHP 和 MYSQL 代码错误从数据库中错误的表中选择

javascript - Ajax 提交隐藏表单验证未执行

javascript - React 中的自定义 mailchimp 注册表单

python - Django 用户显示-如何传递用户数据?

javascript - 保存后立即获取 Backbone

java - 根据下拉值隐藏或显示

python - 在 easy-thumbnails 中使用 jpegoptim 和 PIL