簡體   English   中英

Web2py-如何處理自定義注冊表格?

[英]Web2py - How to process custom register form?

我正在嘗試創建一個自定義注冊視圖/表單,並使其與auth.register()一起使用,但是到目前為止,我還沒有運氣。 我主要有兩個問題。

  1. 如果我未在控制器中包含response.view = 'register.html' ,則鏈接register.html默認為web2py的默認注冊頁面(可以,但我不想使用)。

  2. 如果我從控制器功能中刪除了response.view = 'register.html' ,那么我的自定義表單/視圖就會出現,但不會提交/驗證。 它只是不斷彈出失敗消息“糟糕,提交表單時出錯了”

我已經閱讀過的每個線程都說要在控制器中指定form = auth.register()並在視圖中使用{{= form.custom.end}},但這似乎行不通。 我想念什么嗎?

我還嘗試將表單的回調操作指定為action="{{=URL('default', 'register')}} ,但是如果添加此頁面,則頁面也不會對提交執行任何操作。

這是我的代碼:

控制器:(在default.py中)

def register():
    response.view = 'register.html'
    db.auth_user.first_name.readable = db.auth_user.first_name.writable = False
    db.auth_user.last_name.readable = db.auth_user.last_name.writable = False
    return dict(form=auth.register())

查看(default / register.html)

<body class="body-4">
 <div class="form-block w-form">
   <form id="email-form" name="email-form" data-name="Email Form">
     <h1 class="heading-5">Register</h1>
        <input type="email" class="text-field w-input" maxlength4="256" name="Email" data-name="Email" placeholder="Enter your email" id="Email" required="">
        <input type="password" class="text-field w-input" maxlength="256" name="Password" data-name="Password" placeholder="Enter your password" id="Password" required="">
        <input type="password" class="text-field w-input" maxlength="256" name="Password-2" data-name="Password 2" placeholder="Confirm your password" id="Password-2" required="">
        <input type="submit" value="Register" data-wait="Please wait..." class="submit-button w-button">
    {{=form.custom.end}}
    <div class="w-form-done">
      <div>Thank you! Your submission has been received!</div>
    </div>
    <div class="w-form-fail">
      <div>Oops! Something went wrong while submitting the form.</div>
    </div>
  </div>
  <script src="{{=URL('static','js/webflow.js')}}" type="text/javascript"></script>
  <!-- [if lte IE 9]><script src="https://cdnjs.cloudflare.com/ajax/libs/placeholders/3.0.2/placeholders.min.js"></script><![endif] -->
</body>

您需要將查看器代碼放入文件default / register.html而不是register.html中。 然后它對我有用。 您可以在數據庫中看到結果條目。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM