在 Django 中,如何单击按钮来调用视图然后重新加载页面
Posted
技术标签:
【中文标题】在 Django 中,如何单击按钮来调用视图然后重新加载页面【英文标题】:In Django, how to click button to call a view and then reload page 【发布时间】:2017-02-27 04:37:31 【问题描述】:在 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】:您非常接近重新加载页面的任务, 使用 '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'
);
);
【讨论】:
嗨,Prakhar,我已经编辑了如何将plan
字典从 ajax 传递到 HTML 的问题
@vinllen 如果你需要重新加载页面并去查看,你为什么要使用 javascript。只需在按钮上添加 标签即可。
@vinllen Like this
不再需要强制重新加载 location.reload() 在这种情况下应该足够了 ***.com/questions/55127650/…以上是关于在 Django 中,如何单击按钮来调用视图然后重新加载页面的主要内容,如果未能解决你的问题,请参考以下文章