2014-01-22 52 views
2

考慮web2py python web框架中的2個表。web2py,一對多,不需要關係

默認auth_user

這一個:

b.define_table(
    'artwork', 
    Field('user_id', 'reference auth_user', required=False), 
    Field('name'), 
    Field('description', 'text') 
    ) 

現在,當我去到數據庫管理中(appadmin),我預計user_id是可選的。如果我讓選擇空下,當在藝術作品表中手動輸入一個條目時,它會顯示:「值不在數據庫中」,它與required=False聲明相關。

我希望能夠插入,而不user_id

藝術品進入有人可以幫我解決這個嗎? Thx很多

回答

5

當您創建參考字段時,默認情況下它會得到requires=IS_IN_DB(...)驗證程序。 requires屬性在窗體級別執行,而required屬性在DAL級別執行。要覆蓋默認形式驗證,你可以這樣做:

Field('user_id', 'reference auth_user', requires=None) 

或替代,

Field('user_id', 'reference auth_user', 
     requires=IS_EMPTY_OR(IS_IN_DB(db, 'auth_user.id', 
            db.auth_user._format)))