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 に答える