2012-10-26 43 views
1

我剛開始看的web2py並希望使用的用戶名,而不是電子郵件登錄web2py中添加用戶名驗證

我已經添加了以下內容: - 。

auth.define_tables(username=True, signature=False) 

,我需要添加驗證器,但我不知道該把它放在哪裏(聽起來很愚蠢,我知道)。

我已經嘗試了幾個選項並查看了很多示例 - 但它們都創建了一個新表,而不是使用現有的auth_user。 我想: -

auth_table = auth.settings.table_user 
auth_table.username.requires = IS_NOT_IN_DB(db, auth_table.username) 
auth.define_tables(username=True, signature=False) 

但auth_table是無。

回答

3

auth.settings.table_user在您撥打auth.define_tables()之後纔會存在。因此,只要改變順序代碼的:

auth.define_tables(username=True, signature=False) 
auth_table = auth.settings.table_user 
auth_table.username.requires = IS_NOT_IN_DB(db, auth_table.username) 

注意,如果你定義一個DAL(..., lazy_tables=True)db對象,auth.settings.table_user將不存在。在這種情況下,您可以改爲auth_table = auth.table_user()

+0

工作,謝謝 – jimscafe