2013-04-12 31 views
0

我儘量讓這個數據庫在DEF的web2py - sqlite3的 - > 「_lazy_tables」 錯誤

database = DAL('sqlite://userhistory3.db') 
database.define_table('userjob', Field('UserID'),Field('JobID')) 
session.database=database 

但是當我嘗試在其他高清

sd=session.database  
sd.userjob.insert(UserID=auth.user_id,JobID=job_Id) 
database.commit() 

插入值,我得到了錯誤'DAL'對象沒有屬性'_lazy_tables'。我該怎麼辦?

回答

0

當你從會話中檢索一個DAL(數據庫連接)的對象,它只會如果你先用相同的連接字符串重新工作 - 這樣的事情:

database = DAL('sqlite://userhistory3.db') 
sd=session.database 

但是,檢索出的連接贏」沒有任何表定義,所以它不會對你的目的有用。

一般而言,您不需要將DAL對象存儲在會話中。只需將DAL創建和表格定義放入模型文件中,它就可以用於所有請求 - 無需繼續保存並從會話中檢索。

此外,沒有理由在應用程序代碼中調用db.commit() - 提交在請求結束時自動完成。