【问题标题】:Why my form values are not being submitted in web2py?为什么我的表单值没有在 web2py 中提交?
【发布时间】:2014-10-24 05:47:24
【问题描述】:

我有一个简单的登录表格。我是使用 web2py 的初学者,所以我无法弄清楚为什么我的表单值没有被提交。

这是我的控制器功能

def signup():
   form = SQLFORM(db.Membership).process()
   form.add_button('Back', URL('index.html'))

   if form.process().accepted:
        session.flash = 'form accepted'
        redirect(URL('index.html'))
   elif form.errors:
        response.flash = 'form has errors'
   else:
        response.flash = 'please fill the form'

   return locals()

这是我的数据库

db.define_table('Membership',
    Field('userID', 'id'),
    Field('username', 'string',unique=True),
    Field('membershipType','string',default = "Member", label = T('Membership Type')),
    Field('name' , 'string',default='Admin'),
    Field('password', 'password'),
    Field('email' , 'string',default='Admin@admin.com'),
    Field('cNum', 'integer',, label = T('Contact Number'))
    )

这是html

<section>
    <h2>Fill in the details to register</h2>


    {{=form}}



</section>

就像我说的,我只是一个初学者,所以请提供任何可能的帮助。谢谢

【问题讨论】:

    标签: html web2py


    【解决方案1】:

    您呼叫form.process() 两次。第一个调用将实际执行处理并插入记录,第二个调用将简单地重置 CSRF 令牌。结果,.accepted 属性在第二种情况下将是False,您将不会收到重定向和成功消息。将第一行更改为:

    form = SQLFORM(db.membership)
    

    【讨论】:

      【解决方案2】:

      不需要form = SQLFORM(db.Membership).process(),改成form = SQLFORM(db.Membership)就行了

      def signup():
         form = SQLFORM(db.Membership)
         form.add_button('Back', URL('index.html'))
      
         if form.process().accepted:
              session.flash = 'form accepted'
              redirect(URL('index.html'))
         elif form.errors:
              response.flash = 'form has errors'
         else:
              response.flash = 'please fill the form'
      
         return locals()
      

      顺便问一下,我问你为什么要创建一个新的“会员”表? Web2py Auth 已经为您处理身份验证和授权。在 Web2py 的书中查看Access Control

      【讨论】:

        猜你喜欢
        • 2014-04-08
        • 2017-02-20
        • 2014-04-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多