我正在使用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')


这样可以避免错误,因此您只需要在模板中适当地恢复即可。

10-06 12:48