2013-05-27 46 views
0
def test(): 

    form = SQLFORM.factory(Field('cards', requires=IS_IN_DB(db, 'tbl_card.id', '%(name)s'))) 
    form = SQLFORM.factory(Field('evo', requires=IS_IN_DB(db, 'tbl_evo.id', '%(evo_type)s', orderby=db.tbl_evo.id))) 

return dict(form=form) 

我希望能夠在單個視圖中擁有多個SQLFORMS。我如何從一個控制器功能做到這一點?web2py:視圖中的多個表單

爲了我的好處,我將如何調用不同的函數(未命名爲test())來在同一視圖中生成表單?

回答

1

首先,你的代碼不處理的形式,所以你會需要調用每個窗體上的.process()方法。當你這樣做,你可以爲每個表單指定一個唯一的名稱,提交時這將使web2py會告訴他們分開:如果你想調用不同的功能,生成和處理各種形式

form1 = SQLFORM.factory(Field('cards', 
    requires=IS_IN_DB(db, 'tbl_card.id', '%(name)s'))) 
form1.process(formname='form1') 

,你可以把那些函數在模型文件或模塊中,然後從test.html視圖中調用它們。如果您想使用AJAX,更好的選擇是使用LOAD()將每個表單放入component

{{=LOAD('default', 'myform1', ajax=True)}}