在 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/