0

API キーの User クラスに別の列を追加しようとしています。ただし、Flask-Security を使用すると、kwargs でエラーが発生します。

class User(db.Model, UserMixin):
    __tablename__ = 'usermod'
    id = db.Column(db.Integer(), primary_key=True)
    email = db.Column(db.String(120), unique=True)
    password = db.Column(db.String(255))
    active = db.Column(db.Boolean())
    confirmed_at = db.Column(db.DateTime())
    api_key = db.Column(db.String(256))
    roles = db.relationship('Role', secondary=roles_users, backref=db.backref(
        'users', lazy='dynamic'))

さらに、登録後に各ユーザーgenerate_key()のフィールドに独自の関数を使用して入力しようとしています。api_keyこれは、Flask-Security の組み込みapp.config['SECURITY_REGISTERABLE'] = Trueフィールドを使用しているためです。これを行うために Flask-Security の設定をオーバーライドする方法がよくわかりません。

4

1 に答える 1

0

さて、上記のように User クラスを維持するだけでこれを解決しました。しかし、独自の関数を追加するには、次のようなシグナルを使用する必要がありました。

@signals.user_confirmed.connect_via(app)
def user_confirmed_sighandler(app, user):
    user.api_key = generate_key()
    return

これは、登録時ではなく、ユーザーが電子メールで登録を確認した後に発生します (この場合は@signals.user_registered.connect_via(app).

于 2013-06-07T14:45:34.870 に答える