我有这么一段代码
def add_asset(request):
if request.method == 'POST':
form = add_asset_Form(request.POST)
resolt = {}
if form.is_valid():
group_n = request.POST.get('group_name')
name_n = request.POST.get('host_name')
host_n = request.POST.get('ip_name')
port_n = request.POST.get('port_name')
user_n = request.POST.get('user_name')
passwd_n = request.POST.get('passwd_name')
print(group_n, name_n, host_n, port_n, user_n, passwd_n)
add_asset_info = add_asset_op(group_n, name_n, host_n, port_n, user_n, passwd_n)
if add_asset_info == 0:
resolt['resolt'] = '资产添加成功'
return render(request, 'asset/asset.html', resolt)
else:
resolt['resolt'] = '资产添加失败,请检查主机名是否重复!'
return render(request, 'asset/asset.html', resolt)
# return HttpResponseRedirect('/aseetmanage/addaseet/')
else:
resolt['resolt'] = '请输入完整信息'
return render(request, 'asset/asset.html', resolt)
else:
form = add_asset_Form()
return render(request, 'asset/asset.html', {
'form': form
})
直接定义了提示信息并传回到html中
但是使用render会造成刷新表单页面时提示重复提交的问题
如果使用HttpResponseRedirect就无法将提示信息传入到html中
为了解决这个问题
在html页面添加如下代码解决:
<script type="text/javascript">
if ( window.history.replaceState ) {
window.history.replaceState( null, null, window.location.href );
}
</script>
这样刷新就没问题了