2013-06-06 2 views
0

Я пытаюсь добавить еще один столбец в свой класс User для ключа API. Однако при использовании Flask-Security я получаю сообщение об ошибке с моими kwarg.Как добавить параметры в класс пользователя в Flask-Security

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 для каждого пользователя после регистрации. Это дается, что я использую встроенное поле app.config['SECURITY_REGISTERABLE'] = True Flask-Security. Я не уверен, как переопределить настройки Flask-Security для этого.

ответ

0

Хорошо, я решил это, просто соблюдая класс пользователя, как указано выше. Но, чтобы добавить свою собственную функцию мне пришлось использовать сигналы следующим образом:.

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

Это происходит после того, как пользователь подтверждает их регистрацию в электронной почте, а не во время регистрации (в этом случае вы будете использовать @signals.user_registered.connect_via(app)

 Смежные вопросы

  • Нет связанных вопросов^_^