【问题标题】:self submitting forms web2py自提交表单 web2py
【发布时间】:2015-05-03 12:22:26
【问题描述】:

我想从控制器提交表单。所以我在控制器中有这段代码。但是我在视图中看到了提交按钮。如何从控制器本身提交表单?

PS:我的意图是在数据库中添加一条记录。

db.databasename.field.readable=False    #have done this for all the fields
db.databasename.field.writable=False
db.databasename.field.default=somevalue
form=SQLFORM(db.databasename).process()
if form.accepted:
  session.flash='accepted'
return locals()

【问题讨论】:

  • 不清楚你在问什么。视图指定用户在浏览器中看到的 UI。如果这是一个表单,则表单必须在浏览器中呈现给用户,用户将能够在浏览器中填写并提交表单。 “从控制器”提交表单是没有意义的。控制器是在服务器上运行的 Python 代码——一旦表单数据从浏览器发送到服务器,它就会处理表单数据的处理。你能更详细地解释你想要达到的目标吗?
  • @Anthony 我的控制器有不同的视图,我从用户那里收集一些数据并将它们存储在会话变量中(如一些列表)。最后我想将它们插入数据库。这必须是自动化。所以在控制器中我创建了一个表单并使所有字段不可读且不可写,并为它们提供默认值。但是我在视图中获得了提交按钮(实际上没有此功能的视图,因为它只是用于在数据库中插入记录)。
  • @user1576772 如果表单有 auth.signature 那么会发生什么?
  • @user1576772 我想更新数据库表单控制器记录中的某些字段。我该怎么做?例如:在数据库中的“学生”表中,有一个名为“性别”的字段,它可以是“男性”或“女性”。稍后我添加一个名为“性别描述”的新字段。当性别为女性时,它应该是“女孩”和“男孩'如果性别是男性。我想为所有记录填充这个新字段。我该如何实现?
  • @sairamkolla auth.signature 将在使用 insert() 时自动填充。

标签: forms model-view-controller controller web2py


【解决方案1】:

所以你想从控制器添加一条记录?做吧:

db.table_name.insert(field1 = "value1", field2 = "value2", field3 = "value3", ...)

【讨论】:

    猜你喜欢
    • 2013-01-11
    • 1970-01-01
    • 1970-01-01
    • 2017-02-20
    • 1970-01-01
    • 2015-09-24
    • 1970-01-01
    相关资源
    最近更新 更多