当前位置: 首页 > 面试题库 >

如何在Django中访问表单提交按钮值?

施超
2023-03-14
问题内容

我有一个Django项目,该项目在一页上具有多种形式(具有不同的标记),可以提交以产生不同的效果。在所有情况下,我都希望将用户重定向回同一页面,因此在我看来,我使用提交表单然后重定向到原始页面的模式。在至少一种情况下,两种形式之间的唯一区别是提交按钮的值。

在我看来,我有代码(这是我的视图函数第一次访问request.POST):

if request.POST['submit']=='Add':
    #code to deal with the "Add" form

在模板中,第一个表单具有一个提交按钮,例如

<input type="submit" value="Add">

我以为这样可以,但是当我提交该表格时,从上面看到的那一行出现错误:

在中找不到关键字“提交” <QueryDict: {u'clientyear': [u'2012'], u'csrfmiddlewaretoken': [u'be1f2f051f09f6ab0375fdf76cf6a4d7'], u'ben': [u'123405']}>

显然,这没有'submit'键或任何键的值与我单击的提交按钮相对应。因此,由于这不起作用,如何访问提交按钮的值或判断已提交了哪些表单?


问题答案:

Submit 是HTML表单结构…您必须使用表单对象的name属性,如下所示…在模板中:

<form>
...
<input type="submit" name="list" value="List Objects" />
</form>
<form>
...
<input type="submit" name="do-something-else" value="Do Something Else" />
</form>

您认为:

if 'list' in request.POST:
    # do some listing...
elif 'do-something-else' in request.POST:
    # do something else


 类似资料:
  • 问题内容: 我有一个带有一个电子邮件输入和两个提交按钮的表单,用于订阅和取消订阅新闻通讯: 我也有上课表格: 我必须编写自己的clean_email方法,并且我需要知道表单是通过哪个按钮提交的。但是提交按钮的值不在字典中。否则我可以获取按钮的值吗? 问题答案: 你可以在方法中使用来在验证之前访问POST数据。它应包含一个称为或取决于所按下按钮的键。

  • 问题内容: 我正在使用ASP.net Web应用程序。 我有一个带有提交按钮的表格。提交按钮的代码如下所示。 我想写如下内容: 我该怎么做呢? 问题答案: 你最好做… 如果返回,则您的表单不会提交。 您可能还应该将事件处理程序从内联移动。

  • 问题内容: 单击后,我编写了以下代码以禁用网站上的提交按钮: 不幸的是,它没有发送表格。我怎样才能解决这个问题? 编辑 我想绑定提交,而不是表格:) 问题答案: 做到: 发生的事情是您实际上在完全触发该提交事件之前禁用了该按钮。 您可能还应该考虑使用ID或CLASS来命名元素,因此不要在页面上选择所有提交类型的输入。 (请注意,我使用,因此该表单在示例中并未实际提交;请在使用时将其保留。)

  • 问题内容: 在下一页中,使用Firefox的“删除”按钮提交表单,但“添加”按钮不提交。如何防止“删除”按钮提交表单? 问题答案: 你正在使用HTML5按钮元素。请记住,原因是此按钮具有默认的提交行为,如W3规范所述,如此处所示: W3C HTML5按钮 因此,你需要明确指定其类型: 为了覆盖默认的提交类型。我只想指出发生这种情况的原因=)

  • 问题内容: 我有一个表格。在该表格之外,我有一个按钮。一个简单的按钮,如下所示: 但是,当我单击它时,它会提交表单。这是代码: 该按钮应该做的就是编写一些JavaScript。但是,即使看起来像上面的代码一样,它也会提交表单。当我将标签按钮更改为跨度时,它可以完美工作。但不幸的是,它必须是一个按钮。有什么办法可以阻止该按钮提交表单?像例如 问题答案: 我认为这是HTML最令人讨厌的小特性。该按钮必

  • 问题内容: 我在将CSS表单的HTML表单提交按钮居中时遇到麻烦。 现在我正在使用: 这个CSS内容 而且它什么也没做。我知道我可能在做一些愚蠢的错误。我怎样才能解决这个问题? 问题答案: 我只是将div包裹在它们周围,并使其居中对齐。那么您不需要按钮上的任何CSS即可将它们居中。