2013-09-05 74 views
0

我使用SQLFORM.factory創建自定義形式如下:的web2py SQLFORM.factory類型和默認屬性

searchform=SQLFORM.factory(
    Field('useraccount','integer',default=None), 
    Field('group','unicode',default=None), 
    submit_button = 'Search')  

按我的理解useraccount場的類型應該整數而如果用戶不提供此值,我應該得到request.vars.useraccount作爲。但它接受字符串值,如果用戶不提供此值,我會在request.vars.useraccount中獲得空字符串。

請問我該怎麼做才能做到這一點。

謝謝。

回答

1

在窗體中,整數字段只是CSS類設置爲「整數」的字符串輸入,因此提交的值以及存儲在request.vars中的值是字符串。處理表單時,字符串值將轉換爲整數字段的整數,因此您應該使用form.vars.useraccount而不是request.vars.useraccount。當字段留空時,您會發現form.vars.useraccountNone,當提交值時爲None

+0

感謝您的回覆。我試圖使用form.vars.useraccount,它會返回整數值,如果提供。但是form.vars.group返回'',如果沒有提供。我認爲它應該返回None值。 – gliese581g

+0

不,因爲「組」是一個字符串字段,空字符串是一個有效的值,所以它不適合web2py假設它應該是'None'而不是空的(那麼就沒有辦法輸入空字符串,如果這是你想要的)。如果要將空字符串轉換爲'None',則必須明確執行此操作(請參閱http://stackoverflow.com/a/18638236/440323)。 – Anthony

+0

它的工作!萬分感謝! – gliese581g