如何在Flask-Security中向User类添加参数

时间:2013-06-06 14:22:52

标签: python flask flask-security

我正在尝试在User类中添加另一列API密钥。但是,在使用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的设置来执行此操作。

1 个答案:

答案 0 :(得分: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)