1

我试图将默认登录样式更改为基于用户名的登录。为此,在 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

我想知道如何正确处理这个问题。此外,对公开和处理这些表的工作方式有一个很好的解释会非常有帮助。我对此很陌生,发现它真的很混乱。

4

1 回答 1

1

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

于 2013-01-15T15:15:39.260 回答