2012-07-28 73 views
1

我正試圖在web2py中創建表單。 我不確定正確的語法,也不知道網站上的示例如何完成此操作。有人能給出更好的解釋嗎?web2py表單創建

這樣的簡單形式是如何創建的?

<form> 
<select> 
<option>Paint</option> 
<option>Brushes</option> 
<option>Erasers</option> 
</select> 
Quantity: <input type="text" /> 
<input type="submit" /> 
</form> 

如何驗證更復雜的表單?

+0

你讀過[本章形式(http://web2py.com/books/default/chapter/29/7)?請認真閱讀通過它,嘗試一些東西,然後回來一個更具體的問題。要合併驗證,使用SQLFORM或SQLFORM.factory可能會最簡單。 – Anthony 2012-07-28 20:10:15

+0

你試過了什麼?試驗簡單的控制器,如:def some_controller():form = FORM(INPUT(...),SELECT('​​Paint','Brushers','Erasers'))return dict(form = form)'' – Kasapo 2012-07-30 15:09:02

回答

2
items = ['Paint','Brushes','Erasers'] 
form = FORM(
    SELECT(*items), 
    INPUT('Quantity', _type='text'), 
) 

return dict(form=form) 

(在視圖):

{{ extend 'layout.html' }} 

{{ =form}} 

爲了驗證這一形式,或一個 「更復雜」 的形式:

(在控制器)

form = FORM(...) # This is the same form def as above, must be before form.process() 

if form.process().accepted: 
    # Valid! 
else: 
    # invalid. 

如果有一個更具體的問題,我會試着回答它,但我強烈建議你看看這本書,並嘗試創建和驗證你自己的簡單表單。您可以使用歡迎應用作爲開始的地方。或者你可以谷歌周圍的web2py應用程序,並下載並與他們一起玩。

閱讀完這兩章,我會幫你的web2py東西在未來(會有一個測驗!):

數據庫抽象層(重要解鎖的web2py的DB-的全功率驅動形式): http://web2py.com/books/default/chapter/29/6

表單和驗證(你曾經需要了解創建表單並將其鏈接到數據所需的一切: http://web2py.com/books/default/chapter/29/7

+0

,'SELECT([OPTION(x)for x in * items])'應該是'SELECT([OPTION(x)for x in items])'('items'前面沒有星號)。實際上,有一個更簡單的語法 - 如果你只是將一組項或一個列表傳遞給'SELECT()',它們將被自動包裝在'OPTION()'元素中 - 所以你可以做'SELECT(*項目)'甚至只是'SELECT(項目)'。 – Anthony 2012-07-31 15:14:14

+0

哎呀 - 我的壞。我在想SELECT(*項目),但列表解析是如此有趣!謝謝。 – Kasapo 2012-07-31 15:26:58