2016-03-15 72 views
1
db.define_table('Bill', 
       Field('Bill_NO', 'integer', requires=IS_NOT_EMPTY()), 
       Field('Date', 'date'), 
       Field('Customer_ID', requires=IS_NOT_EMPTY()), 
       Field('Name', requires=IS_NOT_EMPTY()), 
       Field('Address', 'text', length=255), 
       Field('Phone', requires=IS_NOT_EMPTY()), 
       Field('Item', 'list', requires=IS_NOT_EMPTY()), Field('Price', 'list`', requires=IS_NOT_EMPTY()), 
       Field('Grand_Total', 'double', requires=IS_NOT_EMPTY()) 
       #auth.signature 
       ) 

我輸入了上面的代碼,點擊db後出現以下錯誤。比爾模型, (Invaild表/列名「日期」是「全部」保留SQL/NOSQL關鍵字 所以幫我擺脫這種錯誤。謝謝。<type'exceptions.SyntaxError'>(Invaild表/列名「Date」是一個「All」保留的SQL/NOSQL關鍵字

+0

請檢查http://www.web2py.com/books/default/chapter/29/06/the-database-abstraction-layer?search=reserved#Reserved-keywords –

回答

1

如果你想在你的web2py代碼中使用Date,但不介意我F中的數據庫使用的替代名稱,你可以這樣做:

Field('Date', 'date', rname='bill_date') 

在這種情況下,該數據庫將使用bill_date作爲列名(從而避免了保留關鍵字錯誤),但在你的web2py的代碼,你仍然可以請參閱db.Bill.Date

1

因爲日期是在SQL數據庫中的數據類型,如果你想使它成爲你的列名取代它[日期]

+0

你的回答是錯誤的。根據你的回答,我得到以下錯誤:(Field:invalid field name:[Date],use rname for「funny」names) – Surendar

+0

他提示解決問題是錯誤的,其餘的是正確的,因爲你的原始錯誤信息,「日期」是一個保留字,你不能使用它不逃脫它。此外,「日期」在概念上是完全錯誤的名稱,因爲它沒有說明*它是什麼日期。如果這是「到期日」,那麼你應該這樣命名,或者如果它是「開票日期」,你應該這樣命名,即。 'BillingDate'或'DueDate'。至於應該如何解決類似於JC試圖建議的限制,我不知道,這取決於所討論的數據庫引擎。 –

+0

請查看http://www.web2py.com/books/default/chapter/29/06/the-database-abstraction-layer?search=reserved#Reserved-keywords –

相關問題