如何通过用户名处理登录和注册?

时间:2013-01-15 14:05:14

标签: web2py

我尝试将默认登录样式更改为基于用户名的登录。为此,我在db.py中写道:

from gluon.tools import Auth, Crud, Service, PluginManager, prettydate
auth = Auth(db)
crud, service, plugins = Crud(db), Service(), PluginManager()
auth.define_tables(username=True, signature=False, migrate=False)
auth_table=auth.settings.table_user
auth_table.username.requires = IS_NOT_IN_DB(db, auth_table.username)

当我尝试注册新用户时,它会给我这个错误:

<class 'sqlite3.OperationalError'> no such column: auth_user.username

我想知道如何正确处理这个问题。此外,对如何公开和解决这些表的工作有一个很好的解释是非常有帮助的。我对此非常陌生,发现它真的令人困惑。

1 个答案:

答案 0 :(得分:1)

如果您最初创建的Auth表没有用户名,则auth_user表中将没有“username”字段。因为您有auth.define_tables(..., migrate=False),所以DAL不会运行迁移来添加新字段。因此,请尝试暂时将migrate更改为True,以便添加该字段。