2015-05-03 43 views
0

我想從控制器提交表單。因此我在控制器中有這個代碼。但是我在視圖中看到提交按鈕。如何使表單從控制器本身提交? PS:我的意圖是在數據庫中添加一條記錄。self submitting forms web2py

db.databasename.field.readable=False #have done this for all the fields 
 
db.databasename.field.writable=False 
 
db.databasename.field.default=somevalue 
 
form=SQLFORM(db.databasename).process() 
 
if form.accepted: 
 
    session.flash='accepted' 
 
return locals()

+0

這不清楚你在問什麼。該視圖指定用戶在瀏覽器中看到的用戶界面。如果這是一個表單,則表單必須在瀏覽器中呈現給用戶,用戶將能夠填寫並提交表單。沒有意義在哪個人提交表格「從控制器」。控制器是在服務器上運行的Python代碼 - 它一旦處理了從瀏覽器發送到服務器的表單數據,就處理它。你能否更詳細地解釋你想達到的目標? – Anthony

+0

@Anthony我的控制器有不同的視圖,我收集用戶的一些數據,我將它們存儲在會話變量(如某些列表)中。最後我想將它們插入到數據庫中。這必須是自動的。因此,在控制器中,我已經創建了一個表單,並使所有字段不可讀,並且不可寫,並賦予它們默認值。但是我在視圖中獲得了提交按鈕(實際上沒有該函數的視圖,因爲它僅用於在數據庫中插入記錄)。 –

+0

@ user1576772如果表單有auth.signature,那麼會發生什麼? –

回答

0

所以你想從控制器中添加一條記錄?只要這樣做:

db.table_name.insert(field1 = "value1", field2 = "value2", field3 = "value3", ...)