我已经构建了一个Django表单,其中包含一个内容字段和三个按钮。我使用当前文章内容预填充该字段。该领域的目的是对帖子进行更改。
以下代码适用于Firefox / Opera,但不适用于Google Chrome。问题:在Chrome中,所有按钮都按钮1进行提交,而不是按照各自的功能进行操作。我很难弄清楚如何区分Chrome的按钮,以便服务器不会认为每个按钮都是“提交”。
我的观点看起来像这样(仅显示结构的快速摘要):
def change_article(request, articleid):
# setup code
if request.POST:
if "submit" in request.POST:
form = ArticleForm(request.POST)
if form.is_valid():
# calculations
return render_to_response(#)
elif "preview" in request.POST:
form = PreviewForm(request.POST)
if form.is_valid():
# calculations
return render_to_response(#)
elif "reset" in request.POST:
# clear cache
return HttpResponseRedirect
else:
form = ArticleForm(initial={'article': form_text})
return render_to_response(#)
模板中的表单代码如下:
<form action="" method="post"> {% csrf_token %}
<table>
{{ form.as_table }}
</table>
<input type="submit" value="Submit" class="btn-large btn-primary" name="submit">
<input type="submit" value="Preview" class="btn-large btn-primary" name="preview" >
<input type="submit" value="reset" class="btn-large btn-primary" name="reset" >
</form>
有关如何解决此问题的任何想法?令人不安的是,当Chrome差不多完成时Chrome就是导致麻烦的浏览器!
更新
使用Firefox request.POST看起来像:
这是由2.'创建的,'u'csrfmiddlewaretoken':[u'110570fc4625327c81f8bd8c50079866'],u'preview':[u'Preview']}&gt;
使用Chrome request.POST如下:
您好,这就是事情。'],u'csrfmiddlewaretoken':[u'zyvvC5mMZiYSV8SzKSbjx9DFxrrPpFJD'],你提交':[u'Submit']}&gt;