我正在使用Django创建网站,并且尝试从Firefox和IE9中的表单(输入名称为“ bsubmit”)提交POST数据时遇到以下错误:
“在'“
该功能在Chrome浏览器中可以正常运行,因此我不确定是否可以。这是我在视图中的处理方式:
def my_view(request):
if request.method == 'POST':
bsubmit = request.POST['bsubmit']
return render_to_response('my_template.html', {'bsubmit': bsubmit},
context_instance=RequestContext(request))
else:
bsubmit = 'some_val'
return render_to_response('my_template.html', {'bsubmit': bsubmit},
context_instance=RequestContext(request))
我觉得我必须缺少一些明显的东西,但我确定它会是什么。
编辑:这是模板...
<form action="/home/" method="post">
{% csrf_token %}
<input type="image" src="submit.jpg" id="value1" name="bsubmit" value="value1"/>
</form>
我最初有多个提交,但是当我仅使用一个提交时,问题仍然存在。
最佳答案
您是否正在使用JavaScript中的“提交”按钮执行任何操作?在请求中包含“ bsubmit.x”和“ bsubmit.y”本身很奇怪。
除此之外,您实际上在使用'bsubmit'做什么?
通常,无论如何您都不应该直接访问post变量。使用此代替:
bsubmit = request.POST.get('bsubmit') # defaults to `None`
- 要么 -
bsubmit = request.POST.get('bsubmit', 'default')
这样可以避免错误,因此您只需要在模板中适当地恢复即可。